यदि आप तत्व का सूचकांक चाहते हैं, तो यह ऐसा करेगा:
int index = list.Select((item, i) => new { Item = item, Index = i })
.First(x => x.Item == search).Index;
// or
var tagged = list.Select((item, i) => new { Item = item, Index = i });
int index = (from pair in tagged
where pair.Item == search
select pair.Index).First();
आप पहले पास में लंबोदर से छुटकारा नहीं पा सकते।
ध्यान दें कि यह फेंक देगा यदि आइटम मौजूद नहीं है। यह अशक्त ints का सहारा लेकर समस्या को हल करता है:
var tagged = list.Select((item, i) => new { Item = item, Index = (int?)i });
int? index = (from pair in tagged
where pair.Item == search
select pair.Index).FirstOrDefault();
यदि आप आइटम चाहते हैं:
// Throws if not found
var item = list.First(item => item == search);
// or
var item = (from item in list
where item == search
select item).First();
// Null if not found
var item = list.FirstOrDefault(item => item == search);
// or
var item = (from item in list
where item == search
select item).FirstOrDefault();
यदि आप मिलान करने वाले आइटमों की संख्या गिनना चाहते हैं:
int count = list.Count(item => item == search);
// or
int count = (from item in list
where item == search
select item).Count();
यदि आप सभी आइटम चाहते हैं जो मेल खाते हैं:
var items = list.Where(item => item == search);
// or
var items = from item in list
where item == search
select item;
और null
इनमें से किसी भी मामले में सूची की जांच करना न भूलें ।
या के (list ?? Enumerable.Empty<string>())
बजाय का उपयोग करें list
।
टिप्पणियों में मदद करने के लिए पावेल का धन्यवाद।