在List <int>中查找逗号分隔的String值

时间:2018-02-02 07:55:47

标签: c# c#-4.0

我有一个逗号分隔的字符串变量,我需要检查它的值是否存在于给定的List

DataGridview1

我尝试过这样的事情

string freeServices = "1,7,13,21";
List<int> selectedServices = booking.SelectedServices.Select(x => x.ServiceID).ToList();
我能这样做吗?或者有没有其他简单的方法来查找所选id列表中的免费服务ID?

3 个答案:

答案 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)

您可以使用Allint.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
{

}