簡體   English   中英

相互交叉檢查2個列表的最快方法

[英]Fastest way to cross check 2 Lists with eachother

檢查list2中是否存在來自list1的字符串值的最有效方法是什么?

偽代碼示例

StringList List1 = {"a", "b", "c", "d"};
StringList List2 = {"d", "c", "b", "a"};

foreach (string a in List1)
{
    foreach (string b in List2)
    {
        if(a==b)
        {
             WriteLine("match");
        }
    }
} 

這種方法太慢了,無法成為最佳解決方案,我使用的平台是BI#,它是C#的派生產品。 Array.Exists在當前庫中不存在。

您可以使用Intersect

var allIntersections = List1.Intersect(List2);

foreach(string match in allIntersections)
   Console.WriteLine(match);

如果您只想知道至少一個相交:

bool anyExist = allIntersections.Any(); 

將List轉換為逗號分隔的字符串,可以使用標准的InString函數,在這種情況下,該函數稱為StringContains

 foreach (string a in List1)
{
    if(StringContains(a, NewString))
    {
        WriteLine("Match");
    }
} 
bool flag= list2.Except(list1).Any();

如果list1不包含list2的全部,則為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM