gpt4 book ai didi

c# - 将 DefaultIfEmpty 与对象一起使用?

转载 作者:太空狗 更新时间:2023-10-30 00:28:06 24 4
gpt4 key购买 nike

我在 MSDN 上看到一个示例,如果没有返回任何内容,它会让您指定默认值。见下文:

List<int> months = new List<int> { };
int firstMonth2 = months.DefaultIfEmpty(1).First();

是否可以将此功能用于对象?示例:

class object
{
int id;
string name;
}

代码:

List<myObjec> objs = new List<myObjec> {};
string defaultName = objs.DefaultIfEmpty(/*something to define object in here*/).name;

更新:

我在想我可以做这样的事情:

List<myObjec> objs = new List<myObjec> {};
string defaultName = objs.DefaultIfEmpty(new myObjec(-1,"test")).name;

但是一直做不到。应该注意的是,我实际上是在使用 LINQ-To-SQL 尝试在我的 DBML 中定义的对象上使用此方法。不确定这在这种情况下是否有所不同。

最佳答案

您需要传递一个实例化类作为 DefaultIfEmpty 的参数。

class Program
{
static void Main(string[] args)
{
var lTest = new List<Test>();
var s = lTest.DefaultIfEmpty(new Test() { i = 1, name = "testing" }).First().name;
Console.WriteLine(s);
Console.ReadLine();

}
}

public class Test
{
public int i { get; set; }
public string name { get; set; }
}

要添加到它并使其更优雅(IMO)添加一个默认构造函数:

class Program
{
static void Main(string[] args)
{
var lTest = new List<Test>();
var s = lTest.DefaultIfEmpty(new Test()).First().name;
Console.WriteLine(s);
Console.ReadLine();

}
}

public class Test
{
public int i { get; set; }
public string name { get; set; }

public Test() { i = 2; name = "testing2"; }
}

关于c# - 将 DefaultIfEmpty 与对象一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4072654/

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