我在 MSDN 上看到了一个示例,如果没有返回任何内容,它可以让您指定默认值。见下文:
List<int> months = new List<int> { };
int firstMonth2 = months.DefaultIfEmpty(1).First();
是否可以将此功能与对象一起使用?例子:
class object
{
int id;
string name;
}
code:
List<myObjec> objs = new List<myObjec> {};
string defaultName = objs.DefaultIfEmpty(/*something to define object in here*/).name;
UPDATE:
我想我可以做这样的事情:
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"; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)