如何测试列表是否包含字符串的一部分

时间:2011-02-10 20:30:00

标签: c# list contains

我有一个数字列表,我必须检查一个字符串的多个或单个数字是否在该列表中。

例如,假设我有一个包含字符串list = new List<int> { 2, 3, 4, 5, ... }的列表strSegment = "2,8"。尝试list.Contains(strSegment)显然不起作用。有没有办法在不分离strSegment

的情况下做到这一点

这是我到目前为止的代码:

List<string> matchedSegs = ...;
foreach (Common.Ticket tst in lstTST)
{
    string segNums = tst.SegNums;

    var result = segNums.Split(',');
    foreach (string s in result)
    {
        if (matchedSegs.Contains(s))
        {
            blnHKFound = true;
            break;
        }
        else
        {
            strSegsNotFound += tst.strAirSegNums;
            blnHKFound = false;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

嗯,你可以这样做而不分割strNumber,但是你还没有真正解释为什么需要它。我认为使用Intersect进行拆分是最简单的方法,我建议先尝试一下,看看它是否适合您:

var result = strSegment.Split(',').Intersect(numbers);

这是一个更完整的例子:

string strSegment = "2,8";
List<string> numbers = new List<string> { "2", "3", "4", "5" };
var result = strSegment.Split(',').Intersect(numbers);
foreach (string number in result)
{
    Console.WriteLine("Found: " + number);
}