CSharp examples for System:Array Element
Get Combined Hash code for Array
/* ************************************************************ * * @author Couchbase <info@couchbase.com> * @copyright 2014 Couchbase, Inc./*from ww w . j av a 2s .c o m*/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * ************************************************************/ using System.Linq; using System.Collections.Generic; using System; public class Main{ public static int GetCombinedHashcode(this Array array) { unchecked { var hash = 0; var count = 0; foreach (var item in array) { if (item.GetType().BaseType == typeof (Array)) { var jagged = (Array)item; foreach (var inner in jagged) { hash += inner.GetHashCode(); count++; } } else { hash += item.GetHashCode(); count++; } } return 31*hash + count.GetHashCode(); } } }