LINQ中的FirstOrDefault()和FirstOrDefault <string>()之间的差异

kev*_*vin 1 c# linq

FirstOrDefault() and FirstOrDefault<string>()在LINQ 之间有什么区别?

有人可以给我一些简单的解释吗?

TypedDataSet ds= codeComponent.GetAllCode("test");
string status = (from s in ds.Codes
                 where s.Name == "hello"
                 select s.Remarks).FirstOrDefault();


TypedDataSet ds= codeComponent.GetAllCode("test");
string status = (from s in ds.Codes
                 where s.Name == "hello"
                 select s.Remarks).FirstOrDefault<string>();
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 8

没有语义差异; 编译器能够从集合的类型推断出泛型参数.只是语法糖,使我们的生活更简单一点.

请注意,这不是LINQ特有的; 规范定义何时推断泛型参数以及何时不能推断.