gpt4 book ai didi

c# - 将两个 List 组合在一起,使用 LINQ 根据实例成员合并 T 的实例

转载 作者:行者123 更新时间:2023-11-30 14:55:47 28 4
gpt4 key购买 nike

我有一个名为 NamedEntity 的抽象类(被各种不同的子类覆盖):

public abstract class NamedEntity<T> where T : TweetModel
{
protected string _name;
public abstract string Name { get; set; }
public abstract List<TweetModel> tweets { get; set; }
}

这个类中的关键元素是 List<TweetModel>其中包含推文对象列表,旨在模拟与推文相关的基本元数据(即文本、作者、日期/时间等)。

如何合并两个 List<NamedEntity<TweetModel>>以便根据 Name 属性的匹配值将一个列表中的项目合并到另一个列表中?

即NamedEntity1 的名称为“London”+ 相关推文 NamedEntity2 的名称也为“London”和一个不同的List<TweetModel> .我怎样才能合并这两个,依次拉动 List<TweetModel>来自两个集合的实例并将它们添加到新的 List<NamedEntity<TweetModel>>对象?

我读到我可以在这里使用连接,但我不太了解 LINQ 语法:

private List<NamedEntity<TweetModel>> joinLists(List<NamedEntity<TweetModel>> list1, List<NamedEntity<TweetModel>> list2)
{
//var joined = from Name in list1 join Name in list2 on ????;
}

最佳答案

您需要告诉 Join 3 件事:要加入哪些集合、通过什么加入它们以及如何实际加入它们:

private IEnumerable<NamedEntity<TweetModel>> Join(
IEnumerable<NamedEntity<TweetModel>> list1,
IEnumerable<NamedEntity<TweetModel>> list2)
{
return list1.Join(list2, item => item.Name, item => item.Name, (outer, inner) =>
{
outer.tweets.AddRange(inner.tweets);
return outer;
});
}

关于c# - 将两个 List<T> 组合在一起,使用 LINQ 根据实例成员合并 T 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24582146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com