2010-01-06 9 views
5

का उपयोग कैसे करें यहाँ मेरी कोडLinq और में खंड

if (catid != 0) 
      posts = posts.Where(x => x.catid IN '1,8,2,109,23'); 

में इस कोड में सिंटेक्स त्रुटि के रूप में दिखाता है। क्या इस

उत्तर

8

को ठीक करने का कोई तरीका है आपको तुलना करने के लिए एक और सूची का उपयोग करना होगा।

List<int> cadIdFoundList = new List<int>(); 

cadIdFoundList.Add(1); 
cadIdFoundList.Add(8); 
// etc. . . 

posts.Where(x => cadIdFoundList.Contains(x.catId)); 
+0

कूल। धन्यवाद .. यह – Luke101

5
int[] ids = new int[] { 1, 8, 2, 109, 23 }; 
var query = posts.Where(x => ids.Contains(x.catid)); 

रोब Conery से पहले discussed इस विषय है।

2

या और भी अधिक सरल:

var query = posts.Where(x => new[] { 1, 8, 2, 109, 23 }.Contains(x.catid)); 
+0

काम करता है यह एक शर्म की बात है कि हमें वह नया [] वहां रखना होगा। अगर हम केवल {1, 7, 3, 5} कर सकते हैं तो यह अच्छा नहीं होगा। इसके बजाय? : डी –

1

हो सकता है कि कुछ की तरह अधिक:

HashSet<int> categories = new HashSet<int>() { 1, 2, 8, 23, 109}; 
posts = posts.Where(post => categories.Contains(post.catid)); 
संबंधित मुद्दे