1

EntityFrameworkを使用してデータをリレーショナルテーブルに配置するために使用している次のコードがあります。

    public IList<Objective> createObjectives()
    {
        var objectiveNames = new[]
        {
            "Objective 1",
            "Objective 2",
            "Objective 3",
            "Objective 4",
            "Objective 5",
            "Objective 6",
            "Objective 7",
            "Objective 8"
        };
        var objectives = objectiveNames.Select(o => new Objective
        {
            ObjectiveSeq = ??,
            Name = o,
            Description = o + " Description",
            ModifiedDate = DateTime.Now
        }
        );
        return objectives.ToList();
    }

テーブル名ObjectiveSeqに新しいフィールドがあります。LINQを変更して、1から始まる連続番号をそのフィールドに挿入するにはどうすればよいですか。

4

2 に答える 2

1
 var objectives = objectiveNames.Select((o, index) => new Objective
        {
            ObjectiveSeq = index,
            Name = o,
            Description = o + " Description",
            ModifiedDate = DateTime.Now
        }
        );
于 2013-03-27T02:43:54.883 に答える
0

関数に過負荷がありSelectます。ここで見つけることができます。

Enumerable.Select<TSource, TResult> Method (IEnumerable<TSource>, Func<TSource, Int32, TResult>)

ページに示されているサンプルを見てください。

 string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" };

 var query = fruits.Select((fruit, index) => new { index, str = fruit });

 foreach (var obj in query)
 {
    Console.WriteLine("{0}", obj);
 }

を使用していることがわかります(fruit, index)。要素とインデックスの両方を選択しています。

出力は次のようになります

{ index = 0, str = apple }
{ index = 1, str = banana }
{ index = 2, str = mango }
{ index = 3, str = orange }
{ index = 4, str = passionfruit }
{ index = 5, str = grape }
于 2013-03-27T02:42:35.230 に答える