C# 仅查找列表中的奇数或偶数
我试图理解如何使用randomC# 仅查找列表中的奇数或偶数,c#,list,random,C#,List,Random,我试图理解如何使用randomint rndIndx=random单独搜索奇数或偶数索引值进入列表=新列表()例如列表的内容: string 0 even string 1 odd string 2 even string 3 odd string 4 even string 5 odd 我不知道当我搜索随机索引到偶数索引时,如果随机值是奇数,如何避免接受一个或另一个不跳过这个过程 另一种方法是,如果我能以某种方式为列表本身搜索奇数索引或单独搜索偶数索引 若我可以通过索引找到字符串,那个么我可
int rndIndx=random单独搜索奇数或偶数索引代码>值进入列表=新列表()代码>例如列表的内容:
string 0 even
string 1 odd
string 2 even
string 3 odd
string 4 even
string 5 odd
我不知道当我搜索随机索引到偶数索引时,如果随机值是奇数,如何避免接受一个或另一个不跳过这个过程
另一种方法是,如果我能以某种方式为列表本身搜索奇数索引或单独搜索偶数索引
若我可以通过索引找到字符串,那个么我可以使用条件rndIndx%2==0
,但无论如何,若条件的结果不可接受,我可以跳过所需的过程
获得所需结果的最佳方法是,如果我能够以某种方式避免在列表中搜索例外数量的索引,此外,它还可以优化性能,因为在奇数情况下,我没有任何理由在90000个值中查找偶数,即使我可以将其排除,反之亦然。但我不知道怎么做
或者我需要使用while循环重复对随机数的请求,直到该值与搜索类型的数字不匹配,不确定随机获取奇数或偶数索引是否更好,您可以为该范围生成随机数[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];
您好,我将把这个解决方案标记为答案,因为我只得到了所需类型的随机数,不需要避免进入列表,如果是随机数。但也很有趣,如何使用字符串Equals值搜索奇数或偶数,避免不需要的数字类型,而不检查每个数字的条件。