[英]Merge two object lists in C# with LINQ
我有兩個相同類型的List<T>
。 有沒有一種簡單的方法可以合並到這兩個集合而不會循環通過這兩個集合並將它們合並為第三集合?
var myObject= new List<Core.MyObject>();
var myObject2= new List<Core.MyObject>();
if(!string.IsNullOrEmpty(txb.Text))
{
var repository = ServiceLocator.Current.GetInstance<Core.RepositoryInterfaces.IRepository>();
myObject= repository.GetWherePostCodeLike(txb.Text).ToList();
}
if(!string.IsNullOrWhiteSpace(ddl.SelectedValue))
{
var repository = ServiceLocator.Current.GetInstance<Core.RepositoryInterfaces.IRepository>();
myObject2= repository.GetNearTownX(ddlLocations.SelectedValue).ToList();
}
能夠僅在第二個上使用+ =會很好,但是這是不允許的...有什么想法嗎?
調用Concat
(保留重復項)或Union
(跳過重復項)LINQ方法
IEnumerable<MyObject> third = list.Concat(otherList);
要使用Union
,您需要重寫Equals
和GetHashCode
以按值比較對象。 (或傳遞IEqualityComparer<MyObject>
)
您有幾種選擇。
您可以將它們串聯:
var combined = dataSet.Concat(dataSet2).ToList();
您可以將一個添加到另一個:
dataSet.AddRange(dataSet2);
您可以執行以下操作:
var merged = dataSet.Concat(dataSet2).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.