我有一个逗号分隔的字符串变量,我需要检查它的值是否存在于给定的List
中DataGridview1
我尝试过这样的事情
string freeServices = "1,7,13,21";
List<int> selectedServices = booking.SelectedServices.Select(x => x.ServiceID).ToList();
我能这样做吗?或者有没有其他简单的方法来查找所选id列表中的免费服务ID?
答案 0 :(得分:1)
要检查,所有值都包含在SelectedServices
:
string freeServices = "1,7,13,21";
var values = freeServices.Split(',').Select(o=>Convert.ToInt32(o)).ToList();
List<int> selectedServices = booking.SelectedServices.Select(x => x.ServiceID).ToList();
if (selectedServices.All(o=>values.Contains(o))
{
}
答案 1 :(得分:0)
尝试以下查询,您将包含记录
var containsValues = booking.SelectedServices.where(e=> freeServices.Split(',').Contains(e.ServiceID));
答案 2 :(得分:0)
您可以使用All
和int.Parse
;
string freeServices = "1,7,13,21";
List<int> selectedServices = booking.SelectedServices.Select(x => x.ServiceID).ToList();
var splittedFreeServices = freeServices.Split(',').Select(k => int.Parse(k));
var result = selectedServices.All(x => splittedFreeServices.Contains(x));
if (result) //booking.SelectedServices contains all elements of freeServices as integer
{
}