腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
首页
标签
linq
#
linq
关注
专栏文章
(51)
技术视频
(0)
互动问答
(9)
linq:内连接为空值?
2
回答
linq
、
连接
小狼
学习一切
当你做一个INNER JOIN,NULL值
,与任何东西都
不匹配。这就是为什么您的查询不返回任何行。
赞
0
收藏
0
评论
0
分享
当你做一个INNER JOIN,NULL值,与任何东西都不匹配。这就是为什么您的查询不返回任何行。
LINQ中何时使用SingleOrDefault与FirstOrDefault()?
2
回答
linq
、
msdn
、
异常
秋之夕颜清
念念不忘,必有回响
如果结果集返回0个记录: SingleOrDefault 返回类型的默认值(例如,默认值为0) FirstOrDefault 返回类型的默认值 如果结果集返回1记录: SingleOrDefault 返回该记录 FirstOrDefault 返回该记录 如果你的结果集返回许多记录: SingleOrDefault 抛出异常 FirstOrDefault 返回第一条记录 结论: 如果要在结果集包含许多记录时引发异常,请使用SingleOrDefault。 如果您总是需要1条记录,无论结果集包含什么,请使用 FirstOrDefault...
展开详请
赞
0
收藏
0
评论
0
分享
如果结果集返回0个记录: SingleOrDefault 返回类型的默认值(例如,默认值为0) FirstOrDefault 返回类型的默认值 如果结果集返回1记录: SingleOrDefault 返回该记录 FirstOrDefault 返回该记录 如果你的结果集返回许多记录: SingleOrDefault 抛出异常 FirstOrDefault 返回第一条记录 结论: 如果要在结果集包含许多记录时引发异常,请使用SingleOrDefault。 如果您总是需要1条记录,无论结果集包含什么,请使用 FirstOrDefault
.Any()和 .Count()> 0哪个方法执行得更好?
2
回答
count
、
linq
、
system
、
集合
不知雨
由于这是相当热门的话题,答案不同,我不得不重新审视一下问题。 测试环境: EF 6.1.3,SQL Server,300k记录 表模型: class TestTable { [Key] public int Id { get; set; } public string Name { get; set; } public string Surname { get; set; } } 测试代码: class Program { static void Main() { using (var context = new TestContext()) { context.Database.Log = Console.WriteLine; context.TestTables.Where(x => x.Surname.Contains("Surname")).Any(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname") && x.Name.Contains("Name")).Any(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname")).Count(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname") && x.Name.Contains("Name")).Count(x => x.Id > 1000); Console.ReadLine(); } } } 结果: 任何()〜3ms Count()〜230ms为第一个查询,〜400ms为秒 备注: 对于我的情况,EF没有像他在帖子中提到的@Ben那样生成SQL。...
展开详请
赞
0
收藏
0
评论
0
分享
由于这是相当热门的话题,答案不同,我不得不重新审视一下问题。 测试环境: EF 6.1.3,SQL Server,300k记录 表模型: class TestTable { [Key] public int Id { get; set; } public string Name { get; set; } public string Surname { get; set; } } 测试代码: class Program { static void Main() { using (var context = new TestContext()) { context.Database.Log = Console.WriteLine; context.TestTables.Where(x => x.Surname.Contains("Surname")).Any(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname") && x.Name.Contains("Name")).Any(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname")).Count(x => x.Id > 1000); context.TestTables.Where(x => x.Surname.Contains("Surname") && x.Name.Contains("Name")).Count(x => x.Id > 1000); Console.ReadLine(); } } } 结果: 任何()〜3ms Count()〜230ms为第一个查询,〜400ms为秒 备注: 对于我的情况,EF没有像他在帖子中提到的@Ben那样生成SQL。
对于IEnumerable <T>的foreach相当于LINQ?
2
回答
foreach
、
linq
、
语法
嗨喽你好
摩羯座
你可以使用FirstOrDefault()可用的扩展名IEnumerable<T>。通过false从谓词返回,它将为每个元素运行,但不会在乎它实际上找不到匹配。这将避免ToList()开销。 IEnumerable<Item> items = GetItems(); items.FirstOrDefault(i => { i.DoStuff(); return false; });...
展开详请
赞
0
收藏
0
评论
0
分享
你可以使用FirstOrDefault()可用的扩展名IEnumerable<T>。通过false从谓词返回,它将为每个元素运行,但不会在乎它实际上找不到匹配。这将避免ToList()开销。 IEnumerable<Item> items = GetItems(); items.FirstOrDefault(i => { i.DoStuff(); return false; });
IEnumerable <T>上的动态LINQ OrderBy?
2
回答
sql
、
iqueryable
、
linq
、
排序
akjok54
stay hungry stay foolish
没有任何并发症不太容易: using System.Linq.Dynamic;在顶部添加。 使用 vehicles = vehicles.AsQueryable().OrderBy("Make ASC, Year DESC").ToList();...
展开详请
赞
0
收藏
0
评论
0
分享
没有任何并发症不太容易: using System.Linq.Dynamic;在顶部添加。 使用 vehicles = vehicles.AsQueryable().OrderBy("Make ASC, Year DESC").ToList();
使用LINQ对List <string>中的所有字符串进行Concat?
2
回答
linq
、
list
、
string
、
连接
、
字符串
Ne_biubiubiu
这就是世界结束的方式
在.NET 4.0和更高版本中: String.Join(delimiter, list); 对于旧版本,必须: String.Join(delimiter, list.ToArray());...
展开详请
赞
0
收藏
0
评论
0
分享
在.NET 4.0和更高版本中: String.Join(delimiter, list); 对于旧版本,必须: String.Join(delimiter, list.ToArray());
相关
产品
热门
专栏
全栈文档库
164 文章
26 订阅
历史专栏
1.2K 文章
40 订阅
技术之路
224 文章
28 订阅
繁依Fanyi 的专栏
940 文章
35 订阅
编程进阶实战
423 文章
28 订阅
领券