如果我有像
这样的作者对象列表List<Author> authors = new List<Author>{
new Author { Id = 1, Name = "John Freeman"};
new Author { Id = 1, Name = "Adam Kurtz"};
};
这个例子实际上是用静态方法包装的,它返回作者列表。
在我的其他对象中,有Authors
类型的属性List<Author>
。
现在我想将列表中的第二位作者分配给Authors
属性。
我以为我可以使用Authors = GetAuthors()[1].ToList()
;
但我无法访问索引指定作者的ToList()。
澄清
private static List<Author> GetAuthors() return list of authors (example above).
var someObject = new SomeObject()
{
Authors = // select only Adam Kurtz author using index
// and assign to Authors property of type List<Author>
};
答案 0 :(得分:1)
如果我理解正确,您需要一个List<Author>
,其中包含一位作者。然后在单个ToList()
对象上使用Author
无效语法。
试试这个:Authors = new List<Author>() { GetAuthors()[1] };
答案 1 :(得分:0)
您无法将单个作者分配到list<Author>
,因此您必须创建一个列表(单个作者)来分配它。
Authors = new List<Author>() {GetAuthor()[1]};
我不知道,为什么你想根据索引进行采取,理想情况下你应该根据作者的ID
编写一个查询来获取价值,以便将来不会产生任何问题。
赞:Authors = new List<Author>() {GetAuthor().FirstOrDefault(x=>x.ID==2)};
答案 2 :(得分:0)
使用LINQ的解决方案
GetAuthors().Skip(1).Take(1)
编辑:忽略这一切。你正在使用列表。
您实际需要的是使用GetRange
:
GetAuthors().GetRange(1,1);