我一直在寻找int.TryParse方法实现,它实际上是如何工作的,但我还没有找到.我必须知道,关于a string,它是否是一个数值,但我现在不想转换它.
所以我只需要bool结果int.TryParse.所以问题是:
bool结果,和
int.TryParse实际上是如何工作的(有try ... catch内部还是迭代输入的字符string)?最近我对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是一个有用的工具.
有没有人有这方面的积极经验?
我有一个数据表,包含几列.我想用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) 当我尝试构建 .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 4(Lazy<T>)中引入了一种类型.我的问题是:这些之间有什么联系吗?我已经检查了Lazy<T>ILSpy中的方法,但是我还没有看到带有yield return的方法实现.那么它们是否在较低层次连接?
谢谢你的回答!