Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 分离列表(元组(字符串,整数))以获得两个匹配/非谓词的列表(字符串)_.net_Vb.net_Linq - Fatal编程技术网

.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();