public static BitArray FromString(string str) { str = str.Trim(); if (str.StartsWithChar('{') && str.EndsWithChar('}')) { var ret = new BitArray(0); str = str.Substring(1, str.Length - 2); foreach (var index in str.Split(',').Select(n => n.Trim()).Select(n => int.Parse(n, NumberFormatInfo.InvariantInfo))) { BitArrays.SetValue(ret, index, true); } return(ret); } else { var ret = new BitArray(str.Length); for (var i = 0; i < str.Length; i++) { var c = str[i]; switch (c) { case '0': ret[i] = false; break; case '1': ret[i] = true; break; default: throw new ArgumentException(nameof(FromString), nameof(str)); } } return(ret); } }
public int GetHashCode(BitArray obj) { return(BitArrays.GetHashCode(obj)); }