繁体   English   中英

在数组中查找多个数字

[英]Find multiple numbers in array

我需要找到数组中包含的多个数字,然后随机选择一个。 这是我的代码:

 var get = JsonConvert.DeserializeObject<List<int>>(json);
 var number = get.Where(r => r = 1).FirstOrDefault();

 if (number = 1)
 {
     //DO SOMETHING

 }

如何从另一个数组中包含的数组列表中随机选择一个数字?

例如:

array1 = [1, 2, 4, 5, 6, 7, 9, 10]
array2 = [3, 4, 8, 10]

如何检查 array2 的数字是否包含在 array1 中并仅从现有列表中随机选择一个数字?

在示例中,检查结果为 [4, 10],因为 3 和 8 不在 array2 中,然后我想随机选择 4 或 10,它们包含在 array1 和 array2 中。

这些只是一个例子,而不是实际数字。

尝试这个:

        var randomValue = array1
            .Where(x => array2.Contains(x))
            .OrderBy(q => Guid.NewGuid())
            .FirstOrDefault();

您想使用 set intersect:

int[] arr1 = new int[] { 1, 2, 4, 5, 6, 7, 9, 10 };
int[] arr2 = new int[] { 3, 4, 8, 10 };

var intersect = arr1.Intersect(arr2);
//intersect = {4, 10}

现在生成一个介于 0 和 intersect.Count() 之间的随机数

Random rand = new Random();
var randomIndex = rand.Next(intersect.Count());

在 position randomIndex 处选取元素

var randomPick = intersect.ElementAt(randomIndex);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM