C# 使用linq获取一组元素的属性

C# 使用linq获取一组元素的属性,c#,linq,C#,Linq,我有一个元素集合。每个元素都有一个属性字符串名称。 我想在一个字符串列表中得到x个第一个元素的名称,或者更好的x个随机元素的名称。 我现在用经典的方法做这个,但是我想用linq var elements=new List<Individual>(); var names=new List<String>(); For (int i=0;i<x;i++) { names.Add(elements(i).name) } var元素=新列表(); 变量名称=新列

我有一个元素集合。每个元素都有一个属性字符串名称。 我想在一个字符串列表中得到x个第一个元素的名称,或者更好的x个随机元素的名称。 我现在用经典的方法做这个,但是我想用linq

var elements=new List<Individual>();
var names=new List<String>();
For (int i=0;i<x;i++)
{
    names.Add(elements(i).name)
}
var元素=新列表();
变量名称=新列表();

对于使用LINQ的(int i=0;i,您可以尝试以下方法:

 var names = elements.Select(i => i.name).ToList()
或者,如果要将名称添加到现有列表中,可以执行以下操作

names.AddRange(elements.Select(elem => elem.Name));
如果需要一些元素,请执行以下操作:

var names = elements.Take(number).Select(elem => elem.Name).ToList();

是的,您可以通过Take获得准确的数字

      elements.Take(20).Select(x=>x.Name).ToList()

对于列表中的3个随机字符串:

var subset = list
         .OrderBy(t => Guid.NewGuid())
         .Select(i => i.name)
         .Take(3)
         .ToList();

有没有可能精确到元素的数量而不是整个列表?有没有可能精确到元素的数量而不是整个列表?@user2443476编辑您的帖子,并通过提供输入/输出示例来展示您的意思,这样我们就可以尝试回答。如果您费心去看,您会发现这是页面中的内容……获取ra的好主意ndom命令。
var subset = list
         .OrderBy(t => Guid.NewGuid())
         .Select(i => i.name)
         .Take(3)
         .ToList();