Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/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
C# 如何通过StartWith在两个列表之间进行linq_C#_Linq - Fatal编程技术网

C# 如何通过StartWith在两个列表之间进行linq

C# 如何通过StartWith在两个列表之间进行linq,c#,linq,C#,Linq,我有两个字符串列表 var list1 = new List<string> { "1", "12", "21", "34", "22" }; var list2 = new List<string> { "1", "2" }; 如何通过linq解决方案获得result1?您可以将Where与任意组合使用,如: var query = list1.Where(s1 => list2.Any(s2 => s1.StartsWith(s2))).ToList()

我有两个字符串列表

var list1 = new List<string> { "1", "12", "21", "34", "22" };
var list2 = new List<string> { "1", "2" };

如何通过linq解决方案获得
result1

您可以将
Where
任意
组合使用,如:

var query = list1.Where(s1 => list2.Any(s2 => s1.StartsWith(s2))).ToList();
你最终会得到:

{"1","12","21","22"}
另一个选项是进行交叉连接,然后进行如下查询:

var query = from s1 in list1
            from s2 in list2
            where s1.StartsWith(s2)
            select s1;

您可以将
Where
Any
组合使用,如:

var query = list1.Where(s1 => list2.Any(s2 => s1.StartsWith(s2))).ToList();
你最终会得到:

{"1","12","21","22"}
另一个选项是进行交叉连接,然后进行如下查询:

var query = from s1 in list1
            from s2 in list2
            where s1.StartsWith(s2)
            select s1;
使用,您可以执行以下操作

using NinjaNye.SearchExtensions;


var query = list.Search(x => x).StartsWith(list2);
使用,您可以执行以下操作

using NinjaNye.SearchExtensions;


var query = list.Search(x => x).StartsWith(list2);