gpt4 book ai didi

c# - 使用 FirstOrDefault 指定条件(在方法链接方法中)

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:58 25 4
gpt4 key购买 nike

我有以下代码用于选择最新的 Preference 对象的 CreatedDate。它使用 FirstOrDefault 从首选项集合中选择一个首选项对象。

DateTime? latestPreferenceDate = preferences.FirstOrDefault() == null ? null : (preferences.FirstOrDefault()).CreatedDate;

我们如何指定所选对象应该是具有最新创建日期的对象?此外,我需要选择与最新日期对应的对象,以选择该对象的其他属性。

注意:我正在寻找一种方法链方法

代码

class Program
{
static void Main()
{
Int16? test = null;
string val = Convert.ToString(test);

Collection<Preference> preferences = new Collection<Preference>();

Preference pref1 = new Preference();
pref1.CreatedDate = new DateTime(2011, 11, 11);
pref1.PreferenceCode = 1;

Preference pref2 = new Preference();
pref2.CreatedDate = new DateTime(2012, 12, 12);
pref2.PreferenceCode = 2;

preferences.Add(pref1);
preferences.Add(pref2);


DateTime? latestPreferenceDate = preferences.FirstOrDefault() == null ? null : (preferences.FirstOrDefault()).CreatedDate;


}



}

public class Preference
{
public DateTime? CreatedDate { get; set; }
public int PreferenceCode { get; set; }
}

引用文献:

  1. Using "where": Cannot convert lambda expression to type 'bool'
  2. .NET LINQ query syntax vs method chain

最佳答案

您可以从表中获取 LatestDate,然后在您的条件下使用它。

if(preferences != null)
{
if(preferences.Count != 0)
{
var LatestDate = preferences.Max(r=> r.CreatedDate);
var item = preferences.FirstOrDefault(r=> r.CreatedDate == LatestDate);
}
}

或者在一行中你可以这样做:

if(preferences != null)
{
if(preferences.Count != 0)
{

var item = preferences.FirstOrDefault(r=> r.CreatedDate ==
preferences.Max(t=> t.CreatedDate));
}
}

关于c# - 使用 FirstOrDefault 指定条件(在方法链接方法中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14066422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com