コード例 #1
0
        public int GetHashCode(DataRow obj)
        {
            var values = obj.ItemArray.Where <object>((o, i) => settings.IsKey(i));
            int hash   = 0;

            foreach (var value in values)
            {
                string v = null;
                if (value is IConvertible)
                {
                    v = ((IConvertible)value).ToString(CultureInfo.InvariantCulture);
                }
                else
                {
                    v = value.ToString();
                }

                //Console.WriteLine("{0} {1} {2} {3}", value.ToString(), value.GetType(), v.ToString(), v.GetHashCode());

                hash = (hash * 397) ^ v.GetHashCode();
            }
            return(hash);
        }