比较两个泛型列表,取得不同项
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 }
以上是关于比较两个泛型列表,取得不同项的主要内容,如果未能解决你的问题,请参考以下文章
片段 A 的列表视图中的片段 B 中的新列表视图,单击 A 的列表项
Android:RecyclerView 不显示片段中的列表项