作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的数组是 int[,,]
我想在一个方法中生成每个(我假设的)元组的第一个值,然后我想修改第二个两个值几次。 (另一种方法)
例如:
int[,,] MyArrayGet()
{
int [,,] myArray;
int [,,] myArray = new int[9,9,9];
for (int i = 0; i < 10; i++)
{
myArray[i] = [SomeInt,0,0];
}
return myArray;
}
int[,,] MyArrayModify(int[,,] myArray)
{
for (int i = 0; i < 10; i++)
{
if (somthing is true)
{
myArray[i] = [dont change this value,n+1,dont change this value]
}
if (somthingelse is true)
{
my Array[i] = [dont change this value,dont change this value,n+1]
}
}
有没有快速简便的方法来做到这一点?
我已经检查了这个问题How to get array of string from List<Tuple<int, int, string>>?但是我觉得它不能回答我的问题。
最佳答案
元组在设计上是不可变的。修改时新建一个即可。
IEnumerable<Tuple<int, int, int>> Get()
{
for (int i = 0; i < 10; i++)
{
yield return Tuple.Create(i, 0, 0);
}
}
IEnumerable<Tuple<int, int, int>> Modify(IEnumerable<Tuple<int, int, int>> tuples)
{
foreach (var tuple in tuples)
{
if (tuple.Item1 < 5)
{
yield return Tuple.Create(tuple.Item1, tuple.Item2 + 1, tuple.Item3);
}
else
{
yield return Tuple.Create(tuple.Item1, tuple.Item2, tuple.Item3 + 1);
}
}
}
您的代码看起来更像 javascript 而不是 C#。 int[,,]
是 3D 数组而不是 3 项数组。
Tuple<int, int, int>[]
是 Tuple
的数组共 3 项。如果您不是初学者并使用 LINQ,IEnumerable<Tuple<int, int, int>>
是一个更好的版本。
关于c# - 有没有办法更改 C# 数组中的元组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498151/
我是一名优秀的程序员,十分优秀!