Max*_*Max 15 c# compare list visual-studio
我'尝试检查两者之间的差别List<string>在c#.
例:
List<string> FirstList = new List<string>();
List<string> SecondList = new List<string>();
Run Code Online (Sandbox Code Playgroud)
在FirstList充满了以下值:
FirstList.Add("COM1");
FirstList.Add("COM2");
Run Code Online (Sandbox Code Playgroud)
在SecondList充满了以下值:
SecondList.Add("COM1");
SecondList.Add("COM2");
SecondList.Add("COM3");
Run Code Online (Sandbox Code Playgroud)
现在我想检查一下中的某些值SecondList是否等于中的值FirstList.
如果有相同的值,例如:COM1和COM2,它们在两个列表中,则从列表中过滤它们,并将其余值添加到另一个列表中.
因此,如果我要创建一个新的ThirdList,它将仅填充"COM3",因为其他值是重复的.
我怎样才能创建这样的支票?
Ily*_*nov 39
尝试使用除 LINQ扩展方法,该方法仅从第一个列表中获取第二个中不存在的项目.示例如下:
List<string> ThirdList = SecondList.Except(FirstList).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码打印结果:
Console.WriteLine(string.Join(Environment.NewLine, ThirdList));
Run Code Online (Sandbox Code Playgroud)
要么
Debug.WriteLine(string.Join(Environment.NewLine, ThirdList));
Run Code Online (Sandbox Code Playgroud)
注意:不要忘记包括: using System.Diagnostics;
打印:
COM3
Run Code Online (Sandbox Code Playgroud)
Tim*_*ter 16
你可以使用Enumerable.Intersect:
var inBoth = FirstList.Intersect(SecondList);
Run Code Online (Sandbox Code Playgroud)
或者检测仅在两个列表中的一个列表中的字符串Enumerable.Except:
var inFirstOnly = FirstList.Except(SecondList);
var inSecondOnly = SecondList.Except(FirstList);
Run Code Online (Sandbox Code Playgroud)
得到你的ThirdList:
List<string> ThirdList = inSecondOnly.ToList();
Run Code Online (Sandbox Code Playgroud)
对于这个要求之王,你可以利用Except功能.
List<string> newlist = List1.Except(List2).ToList();
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做,所以下面的一个创建新的列表3,其中包含list1和list2中不常见的项目
var common = List1.Intersect(List2);
var list3 = List1.Except(common ).ToList();
list3.AddRange(List2.Except(common ).ToList());
Run Code Online (Sandbox Code Playgroud)
当list1和list2有不同的项目时,上面的帮助是完整的
List<string> list1= new List<string>();
List<string> list2 = new List<string>();
Run Code Online (Sandbox Code Playgroud)
FirstList填充以下值:
list1.Add("COM1");
list1.Add("COM2");
list1.Add("COM4");
Run Code Online (Sandbox Code Playgroud)
SecondList填充以下值:
list2 .Add("COM1");
list2 .Add("COM2");
list2 .Add("COM3");
Run Code Online (Sandbox Code Playgroud)
通过使用上面的代码 list3 contains COM4 and COM3.