.net 分离列表(元组(字符串,整数))以获得两个匹配/非谓词的列表(字符串)
我需要分离一个.net 分离列表(元组(字符串,整数))以获得两个匹配/非谓词的列表(字符串),.net,vb.net,linq,.net,Vb.net,Linq,我需要分离一个列表(元组(字符串,整数))以获得两个列表(字符串)。如果字符串匹配某个函数验证格式(返回布尔值),那么我需要它在“匹配”列表中,如果不是在“不匹配”列表中 我可以使用Where扩展方法两次来获得两个列表(元组,整数): 但是我需要的只是字符串的列表,而不是元组的列表。有没有一个有效的方法来做到这一点?谢谢。我会使用类似于: var lookups = initial.ToLookup(x => ValidateFormat(x.Item1), x => x.Item2
列表(元组(字符串,整数))
以获得两个列表(字符串)
。如果字符串
匹配某个函数验证格式
(返回布尔值
),那么我需要它在“匹配
”列表中,如果不是在“不匹配
”列表中
我可以使用Where
扩展方法两次来获得两个列表(元组,整数):
但是我需要的只是
字符串的列表,而不是元组的列表。有没有一个有效的方法来做到这一点?谢谢。我会使用类似于:
var lookups = initial.ToLookup(x => ValidateFormat(x.Item1), x => x.Item2);
var match = lookups[true].ToList();
var notMatch = lookups[false].ToList();
它检查每个项一次,将集合分成“匹配”或“不匹配”组,ToLookup
的第二个参数说明如何在查找特定键时将每个原始元素转换为值(本例中为true/false)
你可以使用Where
和Select
当然-这让我感觉更干净。Add.Select(Function(c)c.Item1)
介于Where
和ToList
调用之间。+1,它不仅更干净,而且只会在初始值上迭代一次,与使用Where
填充match
和notMatch
进行比较。
var lookups = initial.ToLookup(x => ValidateFormat(x.Item1), x => x.Item2);
var match = lookups[true].ToList();
var notMatch = lookups[false].ToList();