Ami*_*mit 2 .net c# collections
我有一个类型字符串集合,可以包含任意数量的元素.
现在我需要找出所有那些重复的元素,只找出重复元素的第一次出现并删除其余元素.
对于前者
public class CollectionCategoryTitle
{
public long CollectionTitleId { get; set; }
public bool CollectionTitleIdSpecified { get; set; }
public string SortOrder { get; set; }
public TitlePerformance performanceField { get; set; }
public string NewOrder { get; set; }
}
List<CollectionCategoryTitle> reorderTitles =
(List<CollectionCategoryTitle>)json_serializer
.Deserialize<List<CollectionCategoryTitle>>(rTitles);
Run Code Online (Sandbox Code Playgroud)
现在我需要以这样的方式处理这个集合,它会删除重复但它必须保持第一次出现.
编辑:
我已经更新了代码,我需要在"NewOrder"属性上进行比较
谢谢
对于您的具体情况:
var withoutDuplicates = reorderTitles.GroupBy(z => z.NewOrder).Select(z => z.First()).ToList();
Run Code Online (Sandbox Code Playgroud)
对于更一般的情况,通常优选Distinct().例如:
List<int> a = new List<int>();
a.Add(4);
a.Add(1);
a.Add(2);
a.Add(2);
a.Add(4);
a = a.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
将返回4,1,2.请注意,Distinct不保证返回数据的顺序(当前实现似乎确实根据原始数据的顺序返回它们 - 但是没有记录,因此不应该依赖在).
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |