我有两个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();
}
能够在第二个上使用+ =会很好,但这是不允许的...任何想法?
答案 0 :(得分:8)
调用Concat
(保留重复项)或Union
(跳过重复项)LINQ方法
IEnumerable<MyObject> third = list.Concat(otherList);
要使用Union
,您需要覆盖Equals
和GetHashCode
以按值比较对象。 (或通过IEqualityComparer<MyObject>
)
答案 1 :(得分:3)
你有几种选择。
你可以连接它们:
var combined = dataSet.Concat(dataSet2).ToList();
您可以将其中一个添加到另一个:
dataSet.AddRange(dataSet2);
答案 2 :(得分:1)
您可以执行以下操作:
var merged = dataSet.Concat(dataSet2).ToList();