使用 LINQ 合并 C# 中的两个对象列表

发布于 2024-11-06 04:24:18 字数 722 浏览 0 评论 0原文

我有两个 List ,它们都是相同的类型。有没有一种简单的方法可以合并到两个集合,而无需循环遍历两个集合并将它们合并到第三个集合中?

代码

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();
}

如果能够在第二个上使用 += 那就太好了,但是这是不允许的......有什么想法吗?

I have two List<T>s which are both the same type. Is there an easy way to merge to the two sets without looping though both sets and merging them into a third?

Code

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();
}

It would have been nice to able able to just use the += on the second, but this is not allowed... Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无言温柔 2024-11-13 04:24:18

调用 Concat(保留重复项)或 Union(跳过重复项)LINQ 方法

IEnumerable<MyObject> third = list.Concat(otherList);

要使用 Union,您需要重写 EqualsGetHashCode 按值比较对象。 (或传递 IEqualityComparer

Call the Concat (keeps duplicates) or Union (skips duplicates) LINQ methods

IEnumerable<MyObject> third = list.Concat(otherList);

To use Union, you'll need to override Equals and GetHashCode to compare objects by value. (or pass an IEqualityComparer<MyObject>)

濫情▎り 2024-11-13 04:24:18

你有几种选择。

您可以将它们连接起来:

var combined = dataSet.Concat(dataSet2).ToList();

您可以将一个添加到另一个:

dataSet.AddRange(dataSet2);

You got several alternatives.

You can concatenate them:

var combined = dataSet.Concat(dataSet2).ToList();

You can add one to the other:

dataSet.AddRange(dataSet2);
昇り龍 2024-11-13 04:24:18

你可以这样做:

var merged = dataSet.Concat(dataSet2).ToList();

You can do something like:

var merged = dataSet.Concat(dataSet2).ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文