我有逗号分隔的ID值,例如:3,4,5,7
,并且表中的每个记录都不同。
现在,在配置设置中,有一些特定的值,例如:3,4
我需要有只选择与配置值匹配的记录的代码:3,4
答案 0 :(得分:3)
您可以使用string.split
将用逗号分隔的值的字符串转换为单个值的列表。
然后,您可以使用linq从一个列表中找到所有在另一个列表中的值。
var results = tableValues.Where(t => configValues.Contains(t));
答案 1 :(得分:1)
Foreach元素,先将其拆分,然后搜索关键字。 试试这个:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
private static List<string> lstStr = new List<string>
{
"1,2,3,4",
"3,4,5",
"3,4,5,6,7,8,9"
};
private static string[] search = new[]{"3", "4"}; // "3,4".Split(',')
public static void Main()
{
foreach(var el in lstStr.Where(x => SearchFunction(x, search)))
{
Console.WriteLine(el);
}
}
private static bool SearchFunction(string listItem, string[] search)
{
var hashSet = listItem.Split(',').ToHashSet();
return search.All(hashSet.Contains);
}
}