Как проверить, содержит ли список часть строки - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть список чисел, и я должен проверить, есть ли несколько или одно число строк в этом списке.

Например, предположим, у меня есть список 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 Ответ

2 голосов
/ 10 февраля 2011

Ну, вы можете сделать это, не разбивая 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);
}
...