小编Dim*_*tri的帖子

OrderBy扩展方法如何命令集合

假设我们有一个Foo具有Int32Field 的类,Bar并且您希望FooBarValue 对对象的集合进行排序.一种方式是实现IComparableCompareTo()方法,但它也可以使用语言集成查询(LINQ)这样做

List<Foo> foos = new List<Foo>();
// assign some values here
var sortedFoos = foos.OrderBy(f => f.Bar);
Run Code Online (Sandbox Code Playgroud)

现在在sortedFoos我们有foos收集的排序.但是如果使用System.Diagnostics.StopWatchobject来测量OrderBy()对集合进行排序所花费的时间总是0毫秒.但无论何时你打印sortedFoos收藏,它显然是有序的.怎么可能.文档没有时间来排序集合,但在方法执行后,集合是否已排序?有人可以向我解释一下这是如何起作用的吗?还有一件事.假设在排序foos集合后我添加了另一个元素.现在每当我打印出集合时,我添加的元素应该在最后吗?错!该foos集合将被排序,foos即使我添加该元素,我添加的元素也是集合的一部分foos排序后.我不会放弃了解任何这样的工作,所以有人能为我说清楚吗?

c# linq

2
推荐指数
1
解决办法
2185
查看次数

存储过程比在线查询慢

所以我有这个非常简单的SP GetData,它有两个参数,看起来像这样

SET ANSI_NULLS ON
GO
SET QOUTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[GetData]
    @Id int = NULL,
    @ExternalId nvarchar(500) = NULL
AS
BEGIN

    SET NOCOUNT ON;
    SELECT
        t.Id,
        t.ExternalId,
        t.Column1 -- other columns ommited for brevity
    FROM [SomeTable] t
    WHERE
        (t.Id = @Id OR @ID IS NULL) AND
        (t.ExternalId = @ExternalId OR @ExternalId IS NULL)

END
Run Code Online (Sandbox Code Playgroud)

这很简单.只需一个表中的一个select语句.现在,我关心的是,如果我执行此过程,平均花费的时间是0.505369秒,但如果我提取该选择查询并执行它,则查询平均需要0.023923秒.我真的很担心这个,因为这个过程实际上经常被调用,并且是我的应用程序中的一个关键步骤,这就是为什么它现在最小化为0.5s是有点可以接受的.这次表只包含495万行.Id列上有聚簇索引,列上有非聚簇索引ExternalId.该表应该会在即将到来的弱点中增加到4500万行,而且数据插入率会降低.在4500万行上我不认为上面显示的SP会给出一些合理的时间.我真的没有说明这里的问题是什么,或者它应该是那样的?据我所知,在执行SP之后,计划被缓存,并且下次计划没有重新创建,所以它是否应该比on the fly query?在这种情况下,使用Ad hoc查询代替SP 更好吗?数据库是Sql Server 2012.提前感谢

sql sql-server stored-procedures

2
推荐指数
1
解决办法
615
查看次数

.NET Winform设置文件位置

创建假定的C#Winform应用程序并转到项目属性时,此选项卡称为设置,该选项卡允许您存储一些变量。因此,当用户关闭应用程序并再次运行时,这些值不会丢失。因此,我猜想在某个地方创建了一些文件来存储在“设置”选项卡中声明的值。有人知道此文件位于何处吗?

.net c# winforms

1
推荐指数
1
解决办法
4143
查看次数

var vs常规对象声明C#

var foo1 = new SomeClass();
SomeClass foo2 = new SomeClass();
Run Code Online (Sandbox Code Playgroud)

这两行代码是否转换为相同的IL,dynamic它们与它们有何不同?我知道dynamic使用某种称为后期绑定的技术,但它是如何工作的?

c#

-5
推荐指数
1
解决办法
113
查看次数

标签 统计

c# ×3

.net ×1

linq ×1

sql ×1

sql-server ×1

stored-procedures ×1

winforms ×1