【发布时间】:2011-01-31 21:21:05
【问题描述】:
我怀念作为 C 程序员可以打字的日子:
memset( byte_array, '0xFF' );
并获得一个填充了“FF”字符的字节数组。所以,我一直在寻找替代品:
for (int i=0; i < byteArray.Length; i++)
{
byteArray[i] = 0xFF;
}
最近,我一直在使用一些新的 C# 功能,并且一直在使用这种方法:
Array.ForEach<byte>(byteArray, b => b = 0xFF);
当然,第二种方法看起来更干净,更容易看,但与第一种方法相比,性能如何?我是否通过使用 Linq 和泛型引入了不必要的开销?
谢谢, 戴夫
【问题讨论】:
-
在第二种方法中仅供参考,您没有使用 LINQ。 LINQ 没有
ForEach方法。您正在使用 Array 类中的静态方法:Array.ForEach。 lambda 表达式是委托的语法糖,不算作 LINQ。 -
感谢大家的回复。我学到了一些东西,希望其他人也能学到一些东西。
标签: c# .net performance