C# 在数组中查找多个数字
我需要找到数组中包含的多个数字,然后随机选择一个。 这是我的代码:C# 在数组中查找多个数字,c#,arrays,random,C#,Arrays,Random,我需要找到数组中包含的多个数字,然后随机选择一个。 这是我的代码: var get = JsonConvert.DeserializeObject<List<int>>(json); var number = get.Where(r => r = 1).FirstOrDefault(); if (number = 1) { //DO SOMETHING } 如何检查array2的编号是否包含在array1中,并仅从现有列表中随机选取一个编号
var get = JsonConvert.DeserializeObject<List<int>>(json);
var number = get.Where(r => r = 1).FirstOrDefault();
if (number = 1)
{
//DO SOMETHING
}
如何检查array2的编号是否包含在array1中,并仅从现有列表中随机选取一个编号
在这个例子中,由于3和8不在array2中,检查结果[4,10],那么我想随机选择4或10,它们包含在array1和array2中
这些只是一个例子,而不是实际数字。试试这个:
var randomValue = array1
.Where(x => array2.Contains(x))
.OrderBy(q => Guid.NewGuid())
.FirstOrDefault();
您可能希望使用“集相交”:
int[]arr1=新的int[]{1,2,4,5,6,7,9,10};
int[]arr2=新的int[]{3,4,8,10};
var intersect=arr1.intersect(arr2);
//intersect={4,10}
现在生成一个介于0和intersect.Count()之间的随机数
在索引位置拾取元素
var randomPick = intersect.ElementAt(randomIndex);
它可以工作,但结果与上面相同,我在控制台“picked X number.picked X number.picked X number.picked X number”中被垃圾信息一次又一次地发送,大约30次(参见编辑的问题),但控制台被包含在for循环中。我错过了一次休息;现在它起作用了。我接受这个答案,因为它更干净,信息更丰富!
Random rand = new Random();
var randomIndex = rand.Next(intersect.Count());
var randomPick = intersect.ElementAt(randomIndex);