1

次のような Author オブジェクトのリストがある場合

List<Author> authors = new List<Author>{ 
       new  Author { Id = 1, Name = "John Freeman"};
       new  Author { Id = 1, Name = "Adam Kurtz"};
};

この例は実際には、作成者のリストを返す静的メソッドでラップされています。

私の他のオブジェクトの中にはAuthors、 type のプロパティがありますList<Author>。ここで、リストの 2 番目の作成者をプロパティに割り当てたいと思い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>
};
4

3 に答える 3

1

私があなたのことを正しく理解していればList<Author>、単一の著者を含む が必要です。ToList()単一のオブジェクトで使用するAuthorことは、有効な構文ではありません。

これを試して:Authors = new List<Author>() { GetAuthors()[1] };

于 2013-10-16T09:55:16.733 に答える
0

単一の著者を に割り当てることはできないためlist<Author>、(単一の著者の) リストを作成して割り当てる必要があります。

Authors = new List<Author>() {GetAuthor()[1]};

インデックスに基づいて取得する理由がわかりません。理想的にはID、将来的に問題が発生しないように、作成者に基づいてクエリを作成して値を取得する必要があります..

お気に入り:Authors = new List<Author>() {GetAuthor().FirstOrDefault(x=>x.ID==2)};

于 2013-10-16T09:57:17.660 に答える
0

LINQを使用したソリューションは次のようになります GetAuthors().Skip(1).Take(1)

編集:それをすべて無視してください。あなたはリストを扱っています。実際に必要なのは、次を使用することですGetRange:

GetAuthors().GetRange(1,1);

于 2013-10-16T09:57:55.333 に答える