首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用字节数组的一部分

使用字节数组的一部分
EN

Stack Overflow用户
提问于 2009-02-26 04:22:14
回答 4查看 27.9K关注 0票数 17

如果我创建了一个字节数组byte[] binBuffer = new byte256,并且填满了该数组的100个字节,如果我只想将这100个字节传递给其他方法,是否可以这样做,而不是创建一个100字节的新字节数组,从旧的数组复制到新的数组,然后传递新的数组?有没有什么办法,我可以只传递前100个字节。我的应用程序特别适用于将数组传递给存储过程。

EN

回答 4

Stack Overflow用户

发布于 2009-02-26 04:37:06

在使用缓冲区时,一个非常常见的模式是:

Foo(byte[] data, int offset, int count) {...}

模式。但是,您不能将其与SqlCommand /参数一起使用,因为当您为参数赋值时,它将消耗整个缓冲区。您将需要一个新的数组:

byte[] second = new byte[100];
Buffer.BlockCopy(first, firstOffset, second, 0, 100);
param.Value = second;
票数 19
EN

Stack Overflow用户

发布于 2009-02-26 04:25:59

如果您可以使用linq:

SomeMethod(binBuffer.Take(100));
票数 2
EN

Stack Overflow用户

发布于 2009-02-26 04:27:28

如果您使用的是.net 3.5,则可以使用Take()扩展方法并执行以下操作:

class Program
{
    static void Main(string[] args)
    {
        byte[] b = new byte[1000];

        dowork(b.Take(10).ToArray());

    }

    public static void dowork(byte[] b)
    {
        // do some work
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/589099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档