从数组字符串中获取随机的8个元素值,没有重复的元素

use*_*966 2 c# arrays random

我有一个长度为100的字符串数组.我希望在C#中没有重复元素的100个元素中随机获得8个元素.请帮我.我很感激.我只是用:

   for (int i = 0; i < 8; i++)
   {
        work with 8 values here
   }
Run Code Online (Sandbox Code Playgroud)

上面的代码只执行8个第一个值而不是8个随机值.

And*_*Gis 6

简单的方法:

var random = new Random();
var randomValues = arr.OrderBy(x => random.Next()).Take(8)
Run Code Online (Sandbox Code Playgroud)

有效方式:使用Fisher-Yates shuffle.Jon Skeet在这里提供了实施.