两个list, List<User>, List<People>,都有一个时间字段,怎样把两个List内容按时间排序放到一个新的List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个list, List<User>, List<People>,都有一个时间字段,怎样把两个List内容按时间排序放到一个新的List相关的知识,希望对你有一定的参考价值。

新的list实现comparator接口,对加入的数据的时间字段进行比较,把两个list的数据往新list加就行了追问

但报类型转换异常,解决不了啊

追答

不好意思,没看到两个list的对象是不一样的,那就不能用这个方法了,
自己写个方法取出来时间比对,然后再插入吧

参考技术A 一个user,一个person,怎么放一起,倒是可以把时间取出来排序 参考技术B sort 方法,多了不说,网上查查,要学会自己查资料 参考技术C 遍历list做判断 参考技术D 循环做判断

c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据

是在一个数组中

如果已经有重复的数据在list里面了,可以先根据某个属性进行排序,然后再从头开始逐个对比数据,有重复的就remove掉。我不晓得list有没有自带的去重复函数,可以去研究下。
另外,在将数据加入到list的时候,可以先对list进行查找,看是否当前添加的数据存在否,如果存在,则不进行添加,不存在才加到list追问

能不能给的代码

参考技术A // 扩展IEnumerable<T>
static class ExternEnumerable 
        public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
        
            HashSet<TKey> seenKeys = new HashSet<TKey>();
            foreach (TSource element in source)
            
                if (seenKeys.Add(keySelector(element)))
                
                    yield return element;
                
            
        
    
    
    // 筛选去重调用
     IEnumerable<User> ie = list; // 先转换为IEnumerable接口类型
     ie=ie.DistinctBy<User,string>(u=>u.DatasName+"|"+u.DatasType+"|"+u.DatasValue);

本回答被提问者采纳
参考技术B list=list.Distinct().ToList();追问

没作用

以上是关于两个list, List<User>, List<People>,都有一个时间字段,怎样把两个List内容按时间排序放到一个新的List的主要内容,如果未能解决你的问题,请参考以下文章

c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据

Lambda表达式

如何比较两个List,请高手帮忙

java怎么合并list对象集合

List某字段相同时将其他字段数据相加

List集合如何根据泛型中某个属性进行排序