我想问一下如何减去数组c#中所有值的某些值?
recyclerView.setHasStableIds(false);
在输出中我想有这个:3,4,2
实际上我想这样做,我可以使用更改的数组,而不仅仅是打印数组减1。
答案 0 :(得分:3)
多种方法:
简单的foreach循环:
foreach(int i in array)
Console.WriteLine(i - 1);
for-loop:
for(int i = 0; i < array.Count; i++)
Console.WriteLine(array[i] - 1);
List.ForEach
:
array.ForEach(i => Console.WriteLine(i - 1));
LINQ
:
var arrayMinusOne = array.Select(i => i - 1);
foreach(int i in arrayMinusOne)
Console.WriteLine(i);
您可以多次使用此arrayMinusOne
查询(但请注意,每次使用时都会执行此查询)。或者,您可以使用arrayMinusOne.ToList()
或ToArray
创建新的集合。如果要修改原始列表,可以使用for循环:
for (int i = 0; i < array.Count; i++)
array[i] = array[i] - 1;
或将arrayMinusOne.ToList()
重新分配给array
变量。请注意,列表不是数组。
答案 1 :(得分:3)
我想首先重命名变量,名称为array
的整数列表不好。所以让我将变量称为ListInt
。而不是使用-1
,最好使用名为someValue
的变量。现在看看代码及其工作原理:
List<int> ListInt = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int someValue = -1;
ListInt = ListInt.Select(x => x - someValue).ToList();
// now the ListInt contains all the values as required
// Print the values using
Console.WriteLine(String.Join(",",ListInt));
答案 2 :(得分:1)
按照您的风格来帮助您理解,这将显示您想要的内容:
for (int z = 0; z < array.Length; z++)
Console.WriteLine(array[z]-1);
但是在显示结果数据之前,这实际上会从数据中减去1:
for (int z = 0; z < array.Length; z++)
array[z]--;
for (int z = 0; z < array.Length; z++)
Console.WriteLine(array[z]);
答案 3 :(得分:0)
List<int> array = new List<int>();
array.Add(2);
array.Add(3);
array.Add(4);
for (int z = 0; z < array.Count; z++)
{
array[z] = array[z] - 1;
}
Console.WriteLine(array[0]);
Console.ReadLine();
答案 4 :(得分:0)
Linq 解决方案:
List<int> array = new List<int>() {
4, 5, 3,
};
// "3, 4, 2"
Console.Write(String.Join(", ", array.Select(item => item - 1)));
Console.ReadLine();
如果您想将每个项目放在单独的行
// 3
// 4
// 2
Console.Write(String.Join(Environment.NewLine, array.Select(item => item - 1)));
答案 5 :(得分:0)
此代码在VB.Net中,但具有逻辑:
Dim array As New List(Of Integer)()
array.Add(4)
array.Add(5)
array.Add(3)
Dim resta = -1
For index = 0 To array.Count - 1
array(index) = array(index) - 1
Console.WriteLine(array(index))
Next
Console.ReadLine()