这是我输入的数据
{测试,样品}
这是我数据库中的数据
{C:\ Users \ Test,D:\ DriveB \ Sample \ Test,C:\ Users \ Private \ Item \ LocationB}
我的预期输出是
{C:\ Users \ Test,D:\ DriveB \ Sample \ Test}
如何使用该输入获得结果?到目前为止,我已经尝试使用像这样的for循环
var Count = Input.Count;
for(var i = 0; i < Count; i++)
{
data = data.Where(u => u.Location.Contains(Input[i])).ToList();
}
变量数据已经从数据库中提取出来,并且具有这样的格式
但是问题在于,当它经过第一个循环时,它会立即消除第二个输入数据。
答案 0 :(得分:3)
var Count = Input.Count;
data = data.Where(x => input.Any(y => x.Location.Contains(y))).ToList();
}
可能会起作用。 Any
的使用意味着:
从
data
中获取任何行,其中input
中至少个条目中的一个或多个包含在Location
中(即子字符串)。 / p>
答案 1 :(得分:2)
首先使用“,”分隔
var input = new List<String>() { "Test", "Sample" };
var db = @"C:\Users\Test,D:\DriveB\Sample\Test,C:\Users\Private\Item\LocationB";
var result = db.Split(',').Where(p => input.Any(c => p.Contains(c))).ToList();