假设我有以下内容:
class Widget1{
public int TypeID { get; set; }
public string Color { get; set; }
}
class Widget2
{
public int TypeID { get; set; }
public string Brand { get; set; }
}
private void test()
{
List<Widget1> widgets1 = new List<Widget1>();
List<Widget2> widgets2 = new List<Widget2>();
List<Widget1> widgets1_in_widgets2 = new List<Widget1>();
//some code here to populate widgets1 and widgets2
foreach (Widget1 w1 in widgets1)
{
foreach (Widget2 w2 in widgets2)
{
if (w1.TypeID == w2.TypeID)
{
widgets1_in_widgets2.Add(w1);
}
}
}
}
我正在使用两个foreach循环通过TypeID比较列表以填充第三个列表。 是否有其他方法使用LINQ通过TypeID比较这两个列表?也许使用Intersect或其他一些函数?
HashSet
中,这样可以更快地进行搜索。更重要的更改是只使用Join
,如我所示,尽管在底层它实际上会执行几乎相同的操作。 - Servy