0

我想创建一个可以同时接受List<byte>字节数组作为参数的方法(如 Resharper 建议的那样):

public static UInt16 GetSourceAddress(IEnumerable<byte> packet)
{
    return BitConverter.ToUInt16(new[] {packet[4], packet[5]}, 0);
}

但是我得到以下编译错误:

Cannot apply indexing with [] to an expression of type 'System.Collections.Generic.IEnumerable<byte>'

我知道我可以继续使用 List 和 byte[] 进行两个重载,但是这个问题说明了什么?如何解决?

4

2 回答 2

6

如果您想要随机访问,请IList<T>改用:

public static UInt16 GetSourceAddress(IList<byte> packet)

List<byte>和implement ,它有一个索引器byte[]IList<byte>

于 2012-11-08T20:59:52.537 回答
2

试试这个

public static UInt16 GetSourceAddress(IEnumerable<byte> packet){  

 return BitConverter.ToUInt16(new[] {packet.ElementAt(4), packet.ElementAt(5)}, 0);
}
于 2012-11-08T21:02:21.043 回答