比较两个列表并生成具有匹配结果的新列表C#

Mr.*_*eer 3 c# list

嗨,大家好,我是一名初学计算机工程师,我有一点问题.

我正在尝试比较两个不同大小的列表(列表A和列表B)并生成一个新的列表(列表C),其大小与列表A相同,包含C#中两个列表的匹配结果.在这里 - 让我以一个例子来解释.

例如,有这两个列表:

list A: "1", "2", "3", "4", "5", "6"
list B: "1", "4", "5"
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

list C: "1", "null", "null", "4", "5", "null"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过这段代码:

List<string> C = new List<string>();

// nA is the length of list A & nB is the length of list B 
for (int x = 0; x < nA; x++)
{
     for (int y = 0; y < nB; y++)
     {
         if (listA[x] == listB[y])
         {
            listC.Add(lista[x]);
         }
         else
            listC.Add(null);
     }
}
Run Code Online (Sandbox Code Playgroud)

我使用的代码没有做到它应该做的事情.我究竟做错了什么?还有另一种方法可以做我需要的吗?我需要一些帮助,我希望我的问题的解决方案也可以帮助其他人.我希望我已经说清楚了,希望你们能帮我解决问题.我非常感谢你的帮助.

非常感谢答案:)

Tim*_*ter 7

您可以使用此LINQ查询:

List<string> listC = listA
    .Select(str => listB.Contains(str) ? str : "null")
    .ToList();
Run Code Online (Sandbox Code Playgroud)

我会使用它,因为它更具可读性和可维护性.