如何减去数组c中每个值的内容

时间:2016-05-04 14:02:14

标签: c#

我想问一下如何减去数组c#中所有值的某些值?

recyclerView.setHasStableIds(false);

在输出中我想有这个:3,4,2

实际上我想这样做,我可以使用更改的数组,而不仅仅是打印数组减1。

6 个答案:

答案 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()