谁能告诉我Plinq的正确代码是什么?我将双数组中每个元素的正弦的绝对值的平方根加起来,但是Plinq给了我错误的结果.
该计划的输出是:
Linq聚合= 75.8310477905274(正确)Plinq聚合= 38.0263653589291(大约应该是它的一半)
我一定是做错了什么,但我找不到什么......
(我在Core 2 Duo Windows 7 x64 PC上运行Visual Studio 2008.)
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
double[] array = new double[100];
for (int i = 0; i < array.Length; ++i)
{
array[i] = i;
}
double sum1 = array.Aggregate((total, current) => total + Math.Sqrt(Math.Abs(Math.Sin(current))));
Console.WriteLine("Linq aggregate = " + sum1);
IParallelEnumerable<double> parray = array.AsParallel<double>();
double sum2 = parray.Aggregate((total, current) => …Run Code Online (Sandbox Code Playgroud) 我目前正在阅读一篇文章,但我真的不明白这是如何与逻辑运算符一起工作的.任何人都可以向我解释这个吗?
例如.如果我想与客户,员工,主管和管理员有4级证券.
[Serializable]
[Flags]
public enum WebRoles
{
customer= 1 << 0,
employee= 1 << 1,
supervisor = 1 << 2,
Admin = 2 << 3
}
Run Code Online (Sandbox Code Playgroud)
然后我应该如何实现以下逻辑.
if (Roles != 0 && ((Roles & role) != role))
return false;
Run Code Online (Sandbox Code Playgroud)
有人能为我提供一些这方面的知识吗?
非常感谢你.
道明
道歉可能是一个很愚蠢的问题.
我很感兴趣的是(a)索引会改进性能(b)它将如何提高性能;(c)为什么它会提高性能?
此外,如果这确实提高了性能,那么LINQ to SQL,LINQ to Entities,LINQ to Objects等等是否会出现这种情况.
再说一次,如果这是一个非常愚蠢的问题,我会道歉.
所以,直到今天,当我尝试在VS2008中编辑只读文件时,弹出一个对话框,给出了三个选项:
还有一个复选框,上面写着"绝不允许在内存中编辑".
突然间,它已经停止提供这些选项,如果文件是只读的,它就不会接受编辑器窗口中的任何输入.我必须进入Windows资源管理器并将文件标记为不可读,然后在我进行任何更改之前在VS中重新打开它.我正在开发一个包含大量源代码控制文件的大型项目,并且经常需要对文件进行本地更改,因此这是一个真正的PITA.
我猜我必须在错误的情况下检查永不允许的内存编辑复选框.
工具中有一个选项..选项..环境..文件读取:
"允许编辑只读文件,在尝试保存时发出警告"
勾选此复选框,并将当前值更改为无效.我试过关闭和打开工作室,重新启动我的机器等 - 一切都无济于事.
有谁知道如何恢复以前的行为?
Eclipse IDE有一个简洁的小功能,我在Visual Studio中真的很想念.
如果我将光标放在变量或方法名称上,IDE将自动突出显示相关范围内当前文档中对它的所有引用.
我似乎无法在VS2008或Resharper 4中找到打开类似行为的选项.我知道VS有一个Find Usages功能,但我想在运行中自动执行.
有没有人知道一个免费的插件会添加这个功能?
我有一个如下所示的表:
TABLE Foo
{
Guid Id [PK],
int A [FK],
int B [FK],
int C [FK],
}
Run Code Online (Sandbox Code Playgroud)
对A,B和C的唯一约束.
现在说,例如,你插入一个新的PK行,其中A = 1,B = 1,C = 1.
SubmitChanges(),都开心.
现在编辑表格.
您删除上一个条目,并插入一个具有F = 1,B = 1,C = 1的fresk PK的行.
SubmitChanges()繁荣!唯一键约束SQL异常.
从我所看到的,它尝试首先插入新记录,然后尝试删除前一个记录.我甚至可以理解,无法确定需要发生的顺序.
但是我能做些什么呢?将这三个领域作为复合PK(并删除旧的)将是一个更好的解决方案或甚至不工作?
目前,"解决方案"是从数据库中删除唯一约束(但我宁愿不这样做).
我正在构建一个FlowDocument从 XML格式化的文件。XML 格式良好,主要由 10,000 个节点组成,每个节点都有一个具有 6 个字符串值的节点。
将 XML 解析为 anXElement并FlowDocument在内存中构建大约需要 5 秒。在我的应用程序FlowDocument中将分配给 a 的Document属性RichTextBox大约需要 7 分钟,并在这段时间内最大限度地使用 CPU。
这是相关的一段代码:
// The following six lines of code execute in about 5 seconds
var xml = XElement.Parse(response.Data);
PrettyXmlConverter px = new PrettyXmlConverter();
FlowDocument fd = px.Render(xml);
Paragraph p = new Paragraph();
p.Inlines.Add(new Run(response.TimeStamp.ToShortDateString() + " " + response.TimeStamp.ToLongTimeString()));
fd.Blocks.InsertBefore(fd.Blocks.ElementAt(0), p);
// This line of code takes about 7 minutes and …Run Code Online (Sandbox Code Playgroud) 我在ADO.NET中有一个包含来自用户端的多条记录的数据集.我需要在单个查询中将所有这些行插入到数据库中,以避免多次查询
我需要生成一份报告,显示一年中的52周(或某些年份为53周)及其开始和结束日期.有一个ISO规范要做到这一点,但看起来非常复杂!我希望有人知道在C#或Visual Basic中实现它的方法(它实际上用于Visual Basic 6,但我会尝试将其移植到其中)
我需要一个正确方向的指针.我一直在环顾四周,似乎找不到任何能指向正确方向的设计模式(GoF).
我正在开发一个小型数字标牌应用原型,其中有一个简单的服务器和连接到该服务器的大量播放器应用程序(显示图像/视频).我的要求是能够将100个播放器连接到单个服务器,并为每个服务器分配50Mb数据.
我打算在服务器和收集播放器的玩家(每个大约25个?)之间建立小型集线器(软件集线器),并让集线器获取并分发50Mb数据(分而治之,对吧?).50Mb只适用于原型,我认为在现实生活中,每个显示视频的播放量大约为300Mb.这些集线器的原因是我会避免让100个玩家同时请求50Mb,而只有4个(每个玩家25个玩家)集线器将请求并重新分配.
使用集线器时,我需要能够在集线器之间移动播放器,即从一个集线器中移除播放器并将其连接到另一个集线器.(我的一个想法是连接到同一个集线器的所有播放器必须共享内容,因此集线器将避免必须下载25个不同的电影)
请问,有谁知道这在现实生活中是如何完成的?你能否评论我的概念和/或指出我正确的方向,以帮助我解决这个问题.
c# ×7
.net ×3
linq ×3
ide ×2
linq-to-sql ×2
.net-3.5 ×1
ado.net ×1
architecture ×1
asp.net-mvc ×1
calendar ×1
datetime ×1
indexing ×1
operators ×1
plinq ×1
richtextbox ×1
sql ×1
sql-server ×1
streaming ×1
vb.net ×1
vb6 ×1
wpf ×1