3

リストを並べ替えて返す関数を使用しています。

return Snacks;

リストが返される前に、追加の選択を実行したいと思います。特定の日付のレコードのみを選択します。2013 年 3 月 25 日。現状では、リストは 5 つのレコードを返します。2013 年 3 月 25 日のみを選択するように絞り込みます。必要な 3 つのレコードのみを取得します。

検索を絞り込むために使用したいレコードの列は「ActivityDate」なので、これを絞り込むにはどうすればよいですか?

のようなものですか

    Snacks.SelectMany(//add date);

また

    Snacks.Select(where activityDate = ??);
    return Snacks;

PSこれを行うには他の方法があることに気づきました。おそらく関数の最初の検索で行う必要がありますが、リストが返される直前に行う必要があります。アドバイスをいただければ幸いです。

編集 返信ありがとうございますが、リストにこれ以上レコードを追加しようとはしていません。リストにはすでに 5 つのレコードがありますが、これを 3 つにする必要があります。これにより、日付 == filterDate であるリスト内のレコードのみを選択したいと思います。

.ToList であなたの試みを試みたとき、それらはすべて必要な 3 つのレコードを追加しましたが、他の 2 つは以前の検索から既に存在しています。

4

4 に答える 4

6

更新: juharr のコメントに応えて、SO の優れたコンテンツを促進するために、回答を更新させてください。

メソッドを使用して、コレクションをフィルタリングできますwhereWheremethod はSystem.Linq名前空間に存在する拡張メソッドであるため、以下の推奨コードを配置するコード ファイルにそれを含めるようにしてください (例: do a using System.Linq;)。

フィルター処理されたコレクションを変数に割り当てるか、直接返すことができます。

var filteredSnacks = Snacks.Where(x=>x.ActivityDate == filterDate).ToList();
return filteredSnacks;
// or simple do a 
return Snacks.Where(x=>x.ActivityDate == filterDate).ToList();
于 2013-05-01T11:58:20.160 に答える
3

次のような単純なものではありませんか?

return Snacks.Where(s => s.ActivityDate == DateTime.Now).ToList();

(例えば)?

于 2013-05-01T11:58:32.897 に答える
2

使用するだけWhereです:

var snacks = Snacks.Where(s => s.ActivityDate == "25/03/2013").ToList();
return snacks;

または

DateTime date = new DateTime(2013, 03, 25);
var snacks = Snacks.Where(s => s.ActivityDate == date).ToList();
return snacks;
于 2013-05-01T11:58:13.933 に答える
2

ここにそのための声明があります

var result = list.Where(item => item.Date.Equals(yourdatevalue))
于 2013-05-01T11:59:03.930 に答える