本文整理汇总了C#中System.Collections.BitArray.Skip方法的典型用法代码示例。如果您正苦于以下问题:C# BitArray.Skip方法的具体用法?C# BitArray.Skip怎么用?C# BitArray.Skip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Collections.BitArray
的用法示例。
在下文中一共展示了BitArray.Skip方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Regex
private static readonly Regex _asciiPattern = new Regex("^[\x20-\x7F]{32}$", RegexOptions.Compiled); // Pattern for string in ASCII code (alphanumeric symbols)
private void ParseCID(string cid)
{
if (String.IsNullOrWhiteSpace(cid) || !_asciiPattern.IsMatch(cid))
return;
var bytes = SoapHexBinary.Parse(cid).Value;
ManufacturerID = bytes[0]; // Bytes 0
OemApplicationID = Encoding.ASCII.GetString(bytes.Skip(1).Take(2).ToArray()); // Bytes 1-2
ProductName = Encoding.ASCII.GetString(bytes.Skip(3).Take(5).ToArray()); // Bytes 3-7
var productRevisionBits = new BitArray(new[] { bytes[8] }).Cast<bool>().Reverse().ToArray(); // Bytes 8
var major = ConvertFromBitsToInt(productRevisionBits.Take(4).Reverse());
var minor = ConvertFromBitsToInt(productRevisionBits.Skip(4).Take(4).Reverse());
ProductRevision = String.Format("{0}.{1}", major, minor);
ProductSerialNumber = BitConverter.ToUInt32(bytes, 9); // Bytes 9-12
var manufacturingDateBits = bytes.Skip(13).Take(2) // Bytes 13-14
.SelectMany(x => new BitArray(new[] { x }).Cast<bool>().Reverse())
.Skip(4) // Skip reserved field.
.ToArray();
var year = ConvertFromBitsToInt(manufacturingDateBits.Take(8).Reverse());
var month = ConvertFromBitsToInt(manufacturingDateBits.Skip(8).Take(4).Reverse());
if ((year <= 1000) && (month <= 12))
{
ManufacturingDate = new DateTime(year + 2000, month, 1);
}
}