我有一个数组,
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);
}
嗯,这不是正确的方法......任何人都知道,怎么做?感谢
答案 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)
所以我假设您想要一个能够取NULL
和string[]
的函数并返回下一个元素(或第一个元素 - 如果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);
}