요소의 색인을 원하면 다음과 같이하십시오.
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();
첫 패스에서는 람다를 제거 할 수 없습니다.
아이템이 존재하지 않으면 던질 것입니다. 이것은 nullable 정수에 의지하여 문제를 해결합니다.
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
.
의견에 도움을 준 Pavel에게 감사드립니다.