我有一個列表。如果您輸入的值在該列表中,則返回結果。即使值超出結果範圍 - 由於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