使用c#选择数组中的下一个子节点

时间:2015-05-15 11:51:02

标签: c# arrays

我有一个数组,

 string [] myString = new string["2","1","3","2","1","2"];

我希望当我选择一个孩子时,我会得到下一个孩子的价值,也就是说,当我选择第一个孩子的时候,#34; 2" ,我将获得第二个" 1" ...当我选择第二个" 1"时,我将获得第三个" 3"的值。 ...等等... 我尝试使用索引方法,这是我的代码:

foreach (var index in myString){
int myindex = myString.indexOf(index);
}

嗯,这不是正确的方法......任何人都知道,怎么做?感谢

5 个答案:

答案 0 :(得分:4)

如果我能正确理解你应该这样做:

string ChildValue(string[] myString, int which)
{
    if (which < myString.GetUpperBound(0))
        return myString[which + 1];
    else
        return myString[0];
}

你可以像这样从任何地方调用这个函数(将你的字符串数组和所需的索引作为参数传递:

public void whatever()
{
    string[] myString = {"2", "1", "3", "2", "1", "2"};
    var selectedChildValue = ChildValue(myString, 3);
}

作为返回值,您将获得元素4的值。

答案 1 :(得分:4)

所以我假设您想要一个能够取NULLstring[]的函数并返回下一个元素(或第一个元素 - 如果int值表示最后一个元素)。像这样的东西可以解决这个问题......(注意我只是把代码扔到这里而不试图编译或测试,所以可能需要一两次调整)。

int

对于列表,你会有类似的东西(假设你总是有public string GetNextElement(string[] strArray, int index) { if ((index > strArray.Length -1) || (index < 0)) throw new Exception("Invalid index"); else if (index == strArray.Length -1) index = 0; else index++; return strArray[index]; } 个对象的列表 - 否则使用string

ToString()

答案 2 :(得分:2)

for( int i = 1; i <= myString.Length; i++ )
{
   string s = i == (myString.Length -1) ? myString[0]: myString[i] ;
}

答案 3 :(得分:1)

for( int i = 0; i < myString.Length - 1; ++i )
{
   string s = myString[i+1];
}

如果我理解正确

编辑:将+1添加到循环中的索引

答案 4 :(得分:1)

如果你想得到最后一个索引的第一个元素,那就可以了。

string[] myString = new string[] { "2", "1", "3", "2", "1", "2" };
for (int i = 0; i < myString.Length; ++i)
{           
    string s = i == myString.Length - 1 ? myString[0] :  myString[i + 1];
    Console.WriteLine(s);
}