使用c#选择数组中的下一个子项
本文关键字:下一个 选择 数组 使用 | 更新日期: 2023-09-27 17:49:18
我有一个数组,
string [] myString = new string["2","1","3","2","1","2"];
我希望当我选择一个孩子时,我会得到下一个孩子的值,也就是说,当我选择第一个"2"时,我将得到第二个"1"的值。。。当我选择第二个"1"时,我会得到第三个"3"的值。。。等等我尝试使用索引方法,这是我的代码:
foreach (var index in myString){
int myindex = myString.indexOf(index);
}
嗯,这不是正确的方法。。。有人知道怎么做吗?感谢
因此,我假设您想要一个函数,该函数将接受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()
(
public string GetNextElement(IList<string> list, int index)
{
if ((index > list.Count - 1) || (index < 0))
throw new Exception("Invalid index");
else if (index == list.Count - 1)
index = 0;
else
index++;
return list[index];
}
如果我理解正确,这应该会奏效:
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的值。
for( int i = 1; i <= myString.Length; i++ )
{
string s = i == (myString.Length -1) ? myString[0]: myString[i] ;
}
for( int i = 0; i < myString.Length - 1; ++i )
{
string s = myString[i+1];
}
如果我正确理解你
编辑:将+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);
}