国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

為了去重復,寫了一個通用的比較容器類,可以用在需要比較的地方,且支持Lamda表達式

2019-11-17 02:41:47
字體:
來源:轉載
供稿:網友

為了去重復,寫了一個通用的比較容器類,可以用在需要比較的地方,且支持Lamda表達式

為了去重復,寫了一個通用的比較容器類,可以用在需要比較的地方,且支持Lamda表達式,代碼如下:

    public class DataComparer<T>:IEqualityComparer<T> where T:class    {        PRivate Func<T, T, bool> _compareFunc;        public DataComparer(Func<T,T,bool> compareFunc)        {            this._compareFunc = compareFunc;        }        public bool Equals(T x, T y)        {           return  this._compareFunc(x, y);        }        public int GetHashCode(T obj)        {            return obj.ToString().GetHashCode();        }    }

調用如下:

dataTable.AsEnumerable().Distinct(new DataComparer<DataRow>((x, y) =>  return (x[1] == y[1] && x[2] ==y[2]))).CopyToDataTable();

在這里需要特別說明一下,GetHashCode方法重寫時,需要使用:obj.ToString().GetHashCode(),而不能直接使用obj.GetHashCode(),原因如下(MSDN):

GetHashCode 方法可以由派生類型重寫。 如果 GetHashCode 沒有重寫,引用類型的哈希代碼通過調用基類的 Object.GetHashCode 方法計算,它基于對象的引用的哈希代碼計算;有關更多信息,請參見 RuntimeHelpers.GetHashCode。 換言之,ReferenceEquals 方法返回 true 的兩個對象具有相同的哈希代碼。 如果值類型不重寫 GetHashCode,基類的 ValueType.GetHashCode 方法使用反射計算基于類型字段的值的哈希代碼。 換言之,字段有相同值的值類型有相等的哈希代碼。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 社会| 石阡县| 黄平县| 辉县市| 读书| 临夏县| 林周县| 江山市| 观塘区| 利川市| 湟源县| 东平县| 莒南县| 周口市| 丘北县| 新龙县| 连城县| 高淳县| 时尚| 蒲江县| 利川市| 肃宁县| 平顶山市| 定兴县| 玉林市| 稷山县| 迭部县| 东丽区| 江都市| 广安市| 乐清市| 获嘉县| 尤溪县| 定边县| 安西县| 嘉峪关市| 青岛市| 丰镇市| 襄城县| 达孜县| 南郑县|