1

特定の日時のエントリを並べ替えて表示したいリストがあります。

public class Foodlist
{
    public int C_ID { get; set; }
    public string DateofFood{ get; set;}
    public string FoodTime{ get; set;}
    public string FoodDetail{ get; set;}
}

現在、次のコードを使用して、日付の降順でリストを表示しています。日付形式は、日付ピッカーと同じです。

var datetime = foodItems.OrderBy(x => x.DateofFood).ToList();    
listBox1.ItemsSource = datetime;

今日など、特定の日付のエントリのみを表示したい。何か案は?

4

5 に答える 5

2

.Whereデータをフィルタリングするために使用できます。

listBox1.ItemsSource = orderedList; 
var datetime = 
    foodItems
    .Where(x => DateTime.Parse(x.DateofFood).Date == datePickerValue.Date) //Or whatever the date time is you're after.
    .OrderBy(x => x.DateofFood)
    .ToList(); 

使用を避けるために(または必要に応じて) 、クラスでDateofFoodaを作成することをお勧めします。DateTimeDateTime.Parse()ParseExcact()

.Where(x => x.DateofFood.Date == datePickerValue.Date) //Or whatever the date time is you're after.

.Dateの Time コンポーネントを削除するために を使用していることに注意してDateTimeください。これにより、特定の日付のエントリを見つけることができます。

于 2012-07-06T09:27:46.377 に答える
1

DateDateTime構造体のプロパティを使用できます。

var result = foodItems.OrderBy(x => x.DateofFood)
                      .Where(x=>x.DateofFood.Date == givenDate.Date).ToList();
于 2012-07-06T09:29:28.383 に答える
0
var datetime = foodItems.Where(x => x.DateofFood == DateTime.Now).ToList();
于 2012-07-06T09:29:07.470 に答える
0

文字列として保存する場合は、yyyyMMdd として保存する方が適切なオプションになる可能性があります。これにより、簡単な並べ替えが提供されます。

System.DateTime.UtcNow.ToString("yyyyMmMdd")上記のリストとの比較はいつでもできますが。

于 2012-07-06T09:50:43.680 に答える
0

U のような場所に述語を適用する必要があります

var datetime = foodItems.Where(x=>x.DateofFood==DateTime.Today).ToList();
于 2012-07-06T09:28:10.193 に答える