是否可以将此R代码转换为c#?

时间:2019-07-20 09:17:13

标签: c# r

# Vector: 
vc <- seq(1:10) # 1 2 3 4 5 6 7 8 9 10
vc[vc > 2 & vc < 8] <- 11 # 1 2 11 11 11 11 11 8 9 10
print(sum(vc[vc > 2 & vc < 8])) # 55

我有一个从1到10的向量,然后我想将该向量的值替换为大于2且小于8的值作为11。然后我想对所有与该限制匹配的值求和, C#上有等效功能吗?

(这是一个简化的示例)。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用LINQ轻松做到这一点:

var original = Enumerable.Range(1, 10).ToList();
edited = original.Select(x => (x > 2 && x < 8) ? 11 : x).ToList();
Console.WriteLine(String.Join(",", edited)); //outputs: 1 2 11 11 11 11 11 8 9 10 
int sum = original.Sum(x => (x > 2 && x < 8) ? 11 : 0);
Console.Write(sum); //outputs 55