比较两个列表并返回匹配项的最快,最好的方法是什么。
只能进行一场比赛。 List1包含来自数据库的动态数据。

我现在的方式:

foreach (var item1 in List1)
{
   foreach (var item2 in List2 )
   {
       if(item2 == item1)
       string match = item1;
   }
}

我感觉可以更快地完成。

最佳答案

使用Enumerable.Intersect

var matchItem = List1.Intersect(List2).First();

不确定是否可以比当前代码快多少,您可以使用Stopwatch进行测量。但是在您当前的代码中,您应该在找到匹配项时中断内部循环和外部循环。就像是:
foreach (var item1 in List1)
{
    string match = null;
    foreach (var item2 in List2)
    {
        if (item2 == item1)
        {
            match = item1;
            break;
        }
    }
    if (match != null)
        break;
}

关于c# - 比较列表并在C#中返回匹配项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16435152/

10-17 02:40