Linq检查一个列表中的项目是否在另一个列表中 [英] Linq to check if item in one list is in another list
本文介绍了Linq检查一个列表中的项目是否在另一个列表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道在传统代码中它将是另一个foreach循环中的foreach循环。 有一个很好的例子,或者用传统的代码方法可以做得更好吗?
TIA
Harry
解决方案
你好,
看看使用
Any
< pre class ="prettyprint"style =""> [TestMethod]
public void MyTestMethod()
{
var firstList = new List< string>(){" Mazda","福特","雪佛兰","α"};
var secondList = new List< string>(){" Volkswagen","""""""" };
var result = secondList.Any(car => car ==" Ford");
Assert.IsTrue(result);
}由于福特位于第一个列表中,因此上述Assert返回true。
使用类列表的示例  ;
公共类公司
{
public int Id {get;组; }
public string Name {get;组; }
公共字符串FirstName {get;组; }
公共字符串LastName {get;组; }
public string Title {get;组; }
公共覆盖字符串ToString()
{
return
" {Id},'{Name}'" ;;
}
}
[TestMethod]
public void MyTestMethod()
{
var customer1 = new Company(){FirstName =" Karen",LastName =" Payne" ;};
var customer2 = new Company(){FirstName =" Mary",LastName =" Jackson"};
var customer3 = new Company(){FirstName =" Bill",LastName =" Adams"};
var cust1 = new List< Company>(){customer1,customer2,customer3};
var cust2 = new List< Company>(){customer1,customer2};
Assert.IsTrue(cust2.Any(cust => cust.FirstName ==" Karen"&& cust.LastName ==" Payne"));
cust2.RemoveAt(0);
Assert.IsFalse(cust2.Any(cust => cust.FirstName ==" Karen"&& cust.LastName ==" Payne"));
}
I know in conventional code it would be a foreach loop within another foreach loop. Is there a good example of this or is this something better accomplished with the conventional code method?
TIA
Harry
解决方案
Hello,
Look at using Any
[TestMethod] public void MyTestMethod() { var firstList = new List<string>() {"Mazda","Ford","Chevy","Alpha"}; var secondList = new List<string>() { "Volkswagen", "Ford", "BMW", "Daimler" }; var result = secondList.Any(car => car == "Ford"); Assert.IsTrue(result); }The above Assert returns true since Ford is in the first list.
Example using a list for a class
public class Company { public int Id { get; set; } public string Name { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Title { get; set; } public override string ToString() { return
"{Id}, '{Name}'"; } }[TestMethod] public void MyTestMethod() { var customer1 = new Company() {FirstName = "Karen", LastName = "Payne"}; var customer2 = new Company() {FirstName = "Mary", LastName = "Jackson"}; var customer3 = new Company() {FirstName = "Bill", LastName = "Adams"}; var cust1 = new List<Company>() {customer1,customer2,customer3}; var cust2 = new List<Company>() {customer1,customer2}; Assert.IsTrue(cust2.Any(cust => cust.FirstName == "Karen" && cust.LastName == "Payne")); cust2.RemoveAt(0); Assert.IsFalse(cust2.Any(cust => cust.FirstName == "Karen" && cust.LastName == "Payne")); }
这篇关于Linq检查一个列表中的项目是否在另一个列表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文