使用LINQ替换低于阈值的值

时间:2012-12-12 10:39:11

标签: linq

我有

int[] source = new[]{ 1, 3, 8, 9, 4 };

我应该编写什么样的linq查询来替换源中的所有值,低于某个阈值,用零?

2 个答案:

答案 0 :(得分:5)

int threshold = 2;
int[] dest = source.Select(i => i < threshold ? 0 : i).ToArray();

如果您不想创建新数组但使用旧数组:

for(int index=0; index < source.Length; index++)
{
    if(source[index] < threshold)
       source[index] = 0;
}

答案 1 :(得分:2)

如果您真的在中替换(而不是 of ),请不要使用LINQ,只需

for(int i = 0; i < source.Length; i++)
    if (source[i] < threshold)
        source[i] = 0;