2017-01-18 31 views
1

我想了解如何只對隨機int rndIndx = random.Next(0, 6);值奇數或偶數指數分別搜索到the List<string> List = new List<string>();對於列表的示例內容:查找僅奇數或偶數到列表

string 0 even 
string 1 odd 
string 2 even 
string 3 odd 
string 4 even 
string 5 odd 

我m不知道如何避免接受一個或另一個不跳過過程,如果隨機值是奇數,當我有隨機搜索甚至索引

另一種方式,如果我可以以某種方式搜索奇數或單獨的偶數索引列出它自己。

如果我能找到的索引字符串,然後我可以使用條件rndIndx % 2 == 0但無論如何,我可以跳過需要的過程,如果結果不爲條件

,從而獲得所需的結果將是,如果我能以某種方式避免的最好辦法接受搜索列表中除了索引的索引數目,另外它可以優化性能,因爲在Odd的情況下,我沒有任何理由尋找偶數到90000的值,即使我可以除了它,反之亦然。但我不知道該怎麼做。

或者我需要重複請求與while循環,直到值不匹配的搜索類型的隨機數,不知道這是否是更好的辦法

回答

3

爲了獲得無論是奇數或隨機索引爲偶數你可以爲範圍[0,偶數/奇數項目生成一個隨機數),然後用一些數學運算來得到列表中的實際索引。假設第0個索引計數爲「偶數」,那麼您應該能夠得到偶數索引的計數,如(list.Count + 1)/2和奇數索引爲list.Count/2。例如:

var randomEven = Random.Next(0, (list.Count + 1)/2; 
var evenIndex = randomEven * 2; 
var randomEvenElement = list[evenIndex]; 

var randomOdd = Random.Next(0, list.Count/2); 
var oddIndex = randomOdd * 2 + 1; 
var randomOddElement = list[oddIndex]; 
+0

你好,我要紀念這一解決方案爲答案,因爲我只需要隨機數,沒必要避免進入榜單,在隨機數的情況下,類型。但也有趣的是,如何搜索與字符串等值只爲奇數或偶數的例子,避免不希望的類型的數字沒有檢查每個條件。 – nikorio