我有一个列表。如果您输入的值在该列表中,则返回结果。即使值超出结果范围 - 由于mod%,结果也会返回。 这真的很难用言语解释我的问题,所以我们来看看代码:从列表中返回值超出列表范围的索引值C#
List<int> list1 = new List<int>(){ 0, 1, 2, 3, 4, 5, 6 };
int value = 3; // what's this number to us?
string result = "";
int starting_number = 3;
if (value == list1[(list1.IndexOf(starting_number) + 2) % list1.Count()])
{ result = "yeah"; }
else if (value == list1[(list1.IndexOf(starting_number) + 1) % list1.Count()])
{ result = "cool"; }
else if (value == list1[(list1.IndexOf(starting_number) + 0) % list1.Count()])
{ result = "one"; }
else if (value == list1[(list1.IndexOf(starting_number) - 1) % list1.Count()])
{ result = "noo"; }
else {result = "oops cant find it"; }
- STARTING_NUMBER。这个数字是不变的。所有的测量都是根据这个数字进行的。
- value - 我们输入的值。我们需要得到的结果为这个值
- 结果 - 只是一个字符串
这就是它是如何工作的:
STARTING_NUMBER = 3,值= 2 =>结果= “野应”(因为2 =的IndexOf(STARTING_NUMBER) - 1)
STARTING_NUMBER = 6,值= 0 =>结果= “酷” (6 + 1 = 0)
STARTING_NUMBER = 0,value = 6 =>将发生错误。 (0 - 1 = 6)
任何想法如何改善代码来摆脱此错误?基本上我可以抓取值是“之后”starting_number,但我无法抓住他们“之前”starting_number。
在(6 + 1 = 0)的情况下:表看起来是6,0,1,2,3 ...
在的情况下,(0 - 1 = 6):名单应该是这样的...... 4,5,6,0
,如果您有任何疑问,请向..它真的很难解释文字的问题,但我想提出的实例它更清楚。
如何获取低于starting_number的值?
你还没有实际问过一个问题... – 2012-04-11 09:18:52
任何想法如何改善代码来摆脱这个错误?基本上我可以抓取值是“之后”starting_number,但我无法抓住他们“之前”starting_number。 – Alex 2012-04-11 09:27:40
这导致我们:**您如何获取低于starting_number的值?** – Alex 2012-04-11 09:28:59