比较两个泛型列表,取得不同项

Posted Max-Jiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个泛型列表,取得不同项相关的知识,希望对你有一定的参考价值。

 1         public static List<T> GetModiflyList<T>(List<T> newList, List<T> oldList, string keyField)
 2         {
 3             List<T> list = new List<T>();
 4             foreach (T newModel in newList)
 5             {
 6                 object nob = newModel.GetType().GetProperty(keyField).GetValue(newModel, null);
 7                 T oldmodel = oldList.Find((delegate (T old) { object ob = old.GetType().GetProperty(keyField).GetValue(old, null); if (object.Equals(ob, nob)) return true; else return false; }));
 8                 if (oldmodel == null)
 9                 {
10                     list.Add(newModel);
11                 }
12                 else
13                 {
14                     PropertyInfo[] pi = oldmodel.GetType().GetProperties();
15                     foreach (PropertyInfo p in pi)
16                     {
17                         object o_new = p.GetValue(newModel, null);
18                         object o_old = p.GetValue(oldmodel, null);
19                         if (object.Equals(o_new, o_old))
20                             continue;
21                         else
22                         {
23                             list.Add(newModel);
24                             break;
25                         }
26                     }
27                 }
28             }
29 
30             return list;
31         }

 

以上是关于比较两个泛型列表,取得不同项的主要内容,如果未能解决你的问题,请参考以下文章

两个片段之间的 onItemClickListener

片段 A 的列表视图中的片段 B 中的新列表视图,单击 A 的列表项

不要在片段中显示列表视图项

Android:RecyclerView 不显示片段中的列表项

一旦单击带有 in 片段的回收器列表项,如何将片段意向活动,以及如何获取回收器项目值?

Fragment的ListView项接口定义中的按钮?