【发布时间】:2014-01-10 22:14:09
【问题描述】:
我有一个字符串数组列表:
List<String[]> listOfStringArrays = something;
我需要从集合中选择值等于列表中任何字符串数组的第 0 个索引处的字符串的所有对象。
例如,如果我只有一个简单的字符串列表,声明为:
List<String> listOfStrings = something;
我会这样做:
var query = someCollection.Where(x => listOfStrings.Contains(x.id_num))
但显然它没有字符串数组列表那么简单。
我知道我可以轻松地遍历字符串数组列表并创建一个简单的字符串列表,其中包含第 0 个值,如下所示:
List<String[]> listOfStringArrays = something;
List<String> listOfValues = new List<String>();
foreach (string[] s in listOfStringArrays)
listOfValues.Add(s[0]);
var query = someCollection.Where(x => listOfValues.Contains(x => x.id_num);
但我真的很想避免这种情况,并尝试将其编写为单行而不引入额外的列表和循环。
【问题讨论】:
-
你不是很清楚:
.Contains(..)不只查看第 0 个索引。您要使用第 0 个索引 only 还是 any 索引? -
有问题的字符串总是在第 0 个索引处。