如何将集合的范围添加到其他集合
本文关键字:集合 添加 其他 范围 | 更新日期: 2023-09-27 18:23:53
我正在尝试创建一个唯一条目列表。我有两个列表,但我想在检查是否已经有条目后,最终得到一个。我怎么能用Linq实现这一点?
//Is a list with Activity, which have an ID property
public static List<Activity> Activites = new List<Activity>();
//Is only a list of string IDs
List<string> l = FileManagement.GetFileContent_List(WALLFILE);
foreach(Activity a in Activites)
{
if (!l.Contains(a.ID.ToString())) l.Add(a.ID.ToString());
}
您可以使用Union方法连接所有ID并且不重复:
l = l.Union(Activities.Select(a => a.ID.ToString()).ToList();
或者直接:
var l = FileManagement.GetFileContent_List(WALLFILE)
.Union(Activities.Select(a => a.ID.ToString()).ToList();
使用Union
将把列表合并在一起,并且不会重复值。例如:
List<string> list1 = new List<string>()
{
"apple",
"banana",
"cat"
};
List<string> list2 = new List<string>()
{
"dog",
"cat", //extra
"ear"
};
var combined = list1.Union(list2).ToList();
这将输出
苹果香蕉猫狗耳朵
您将需要某种方法将"活动"与l
中的字符串进行比较。
要获得项目,您可以尝试以下操作:
var listA = new List<string> {"a", "b", "c", "a"};
var listB = new List<string>();
listB.AddRange(listA
.Where(listAItem => listAItem != listB.Find(listBItem => listBItem == listAItem)));
这将返回listB { "a", "b", "c" };