小编spe*_*i43的帖子

int.TryParse实际上是如何工作的

我一直在寻找int.TryParse方法实现,它实际上是如何工作的,但我还没有找到.我必须知道,关于a string,它是否是一个数值,但我现在不想转换它.

所以我只需要bool结果int.TryParse.所以问题是:

  1. 是否有任何功能只能提供bool结果,

  1. 我想知道,int.TryParse实际上是如何工作的(有try ... catch内部还是迭代输入的字符string)?

c#

74
推荐指数
5
解决办法
16万
查看次数

PLINQ有什么实际好处?

最近我对Linq和Plinq采取了一些措施.我无法看出Plinq在哪种情况下具有真正的显着优势.

我发现了许多例子,例如:

Enumerable.Range(0, 10000).AsParallel().ForAll(_ => Thread.Sleep(50000));
Run Code Online (Sandbox Code Playgroud)

这是完全没用的例子,因为它可以平均10000度,然后会更快10000倍,但在业务应用程序中很少循环10000次并制作"IO作业".

如果有人可以提一个例子,请发布.

Plinq仅适用于Linq to Objects和Linq to XML.不建议在webserver上运行的应用程序中使用它(它有自己的线程管理).因此,我们的机会减少到具有多个核心的桌面应用程序.

通常我会编写linq查询,这些查询在几分之一秒内按顺序运行.如果我平行化并且它真的会并行运行那么会更快,但是谁在乎呢?我认为它仍然足够快.最终用户不会看到任何差异.

我可以想象一个例子,当有人从数据库获取所有数据并在内存中运行查询时.也许这很有用,但这是一个错误的设计.

TPL是异步程序编程的好东西,但我仍然不确定Plinq是一个有用的工具.

有没有人有这方面的积极经验?

c# plinq

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

使用linq计算平均值而不进行分组

我有一个数据表,包含几列.我想用linq计算这些的平均值,没有分组:我试过这个:

dtPointCollFb.GroupBy(r => 1).Select(r => new
        {
            Plus100 = r.Average(item => item.PLUS100),
            Plus50 = r.Average(item => item.PLUS50),
            Plus10 = r.Average(item => item.PLUS10),
            Plus5 = r.Average(item => item.PLUS5),
            Plus1 = r.Average(item => item.PLUS1),
            NULLA = r.Average(item => item.NULLA)
        }).ToList()
Run Code Online (Sandbox Code Playgroud)

当我计算Sum时,这非常有效,但是平均值会产生第一个记录值,而不是所有记录的平均值.我认为这是不必要的:.GroupBy(r => 1)因为我正在使用常量分组.

但是如果没有这个,我不能仅对整个查询使用平均值,而且只能用于一列:

dtPointCollFb.Average(r => r.PLUS100)
Run Code Online (Sandbox Code Playgroud)

有人可以制作简单的最佳实践解决方案吗?如果可以使用方法语法,而不是查询.

我想要这样的东西:

dtPointCollFb.GroupBy(r => 0).Select(r => new
        {
            Plus100 = r.Sum(item => item.PLUS100) / dtPointCollFb.Rows.Count,
            Plus50 = r.Sum(item => item.PLUS50) / dtPointCollFb.Rows.Count,
            Plus10 = r.Sum(item => item.PLUS10) / dtPointCollFb.Rows.Count,
            Plus5 = r.Sum(item => item.PLUS5) / …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

文件名“file”太长或无效 Visual Studio 2010 和 2012

当我尝试构建 .Net 3.5 类库时,我发现了一个有趣的错误,并且在 Visual Studio 2012 中遇到了此错误。

Error   201 File name '..\..\..\..\B2B.Common\Documentation\
FooBarBaz.Core.Providers.ScheduledTaskProviders
.foobarbazSearchAlerting.XML' 
is too long or invalid  D:\FooBarBaz\5000\5000 - xyz - xyxy - example - 
IRE\B2B.Common\Src\FooBarBaz.Core.Providers
.ScheduledTaskProviders\foobarbaz Search Alerting\CSC   
foobarbaz Search Alerting
Run Code Online (Sandbox Code Playgroud)

问题是,我可以在VS2010中构建它,没有任何问题。

根据MSDN,此错误显示,当带路径的文件名长度超过 260 个字符时。实际上是156。

所以两个问题是:

为什么这在 VS2010 中有效,而不是 2012 中?

在VS2012中如何解决这个问题?

.net c# visual-studio-2010 visual-studio-2012

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

收益率与懒惰<T>

我已经了解了带有收益率回报的懒惰执行.现在我已经看到.Net 4(Lazy<T>)中引入了一种类型.我的问题是:这些之间有什么联系吗?我已经检查了Lazy<T>ILSpy中的方法,但是我还没有看到带有yield return的方法实现.那么它们是否在较低层次连接?

谢谢你的回答!

.net c#

3
推荐指数
3
解决办法
954
查看次数

标签 统计

c# ×5

.net ×2

linq ×1

plinq ×1

visual-studio-2010 ×1

visual-studio-2012 ×1