Zip N IEnumerable 一起? 同时迭代它们?

我有:- IEnumerable<IEnumerable> items; 而且我想创造: – IEnumerable<IEnumerable> results; 其中“结果”中的第一项是“项目”的每个IEnumebles的第一项的IEnumerable,“结果”中的第二项是每个“项目”的第二项的IEnumerable等。 IEnumerables不一定是相同的长度。 如果项目中的某些IEnumerables在特定索引中没有元素,那么我希望结果中匹配的IEnumerable中包含更少的项目。 例如:- items = { “1”, “2”, “3”, “4” } , { “a”, “b”, “c” }; results = { “1”, “a” } , { “2”, “b” }, { “3”, “c” }, { “4” }; 编辑:另一个例子(评论中要求): – items = { “1”, “2”, “3”, “4” } , { […]

localhost上UDP包丢失的原因?

在我的WPF 4.0应用程序中,我有一个UDP监听器,如下所示。 在我的Windows 7 PC上,我在localhost上运行服务器和客户端。 每个接收的数据报都是较大位图的扫描线,因此在接收到所有扫描线之后, UI线程上会显示位图。 这似乎有效。 但是,偶尔会丢失1-50%的扫描线。 我希望这在弱网络连接上,但在本地运行时不会。 使用以下代码可能导致UDP程序包丢失的原因是什么? IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, PORT); udpClient = new UdpClient(endPoint); udpClient.Client.ReceiveBufferSize = 65535; // I’ve tried many different sizes… var status = new UdpStatus() { u = udpClient, e = endPoint }; udpClient.BeginReceive(new AsyncCallback(UdpCallback), status); private void UdpCallback(IAsyncResult ar) { IPEndPoint endPoint = ((UdpStatus)(ar.AsyncState)).e; […]

在运行时将属性添加到POCO类

我为我的项目选择了ServiceStack OrmLite ,这是一个纯数据导向的应用程序。 我愿意允许最终用户创建自己的XML格式定义的对象类型,这些格式将用于在运行时使用CodeDOM生成类。 我还将定义应用程序(即User )所需的一些“系统”对象,但我无法预见最终用户将使用的所有属性,因此我正在寻找一种方法来允许扩展我在设计时创建的类。 样品波纹管 public class User { public Guid Uid { get; set; } public String Username { get; set; } public String Password { get; set; } } 最终用户希望拥有Email和Address 。 他应该能够将2个属性添加到上层类,并且整个类将是(OrmLite仍然可以使用它,因为它允许覆盖: public class User { public Guid Uid { get; set; } public String Username { get; set; } public […]

System.Net.Http.HttpClient缓存行为

我正在使用NuGet的HttpClient 0.6.0。 我有以下C#代码: var client = new HttpClient(new WebRequestHandler() { CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable) }); client.GetAsync(“http://myservice/asdf”); 该服务(这次是CouchDB)返回ETag值和状态代码200 OK。 返回一个Cache-Control标头,其值为must-revalidate 更新,这是来自couchdb的响应头(取自visual studio调试器): Server: CouchDB/1.1.1 (Erlang OTP/R14B04) Etag: “1-27964df653cea4316d0acbab10fd9c04” Date: Fri, 09 Dec 2011 11:56:07 GMT Cache-Control: must-revalidate 下次我执行完全相同的请求时,HttpClient会执行条件请求并返回304 Not Modified。 哪个是对的。 但是,如果我使用具有相同CachePolicy的低级HttpWebRequest类,则第二次甚至不会发出请求。 这是我希望HttpClient也表现的方式。 它是必须重新validation的标头值还是为什么HttpClient表现不同? 我想只做一个请求,然后在没有条件请求的情况下从缓存中获取其余的请求。 (另外,作为附注,在调试时,响应状态代码显示为200 OK,即使服务返回304 Not Modified)

如何从资源文件中获取流对象(控制台应用程序/ Windows服务项目)

我正在创建一个Windows服务,我正在尝试访问我添加到资源文件中的一些文件,但我被卡住了,因为我不知道如何访问单个文件。 仅仅为了一些背景信息,这是我到目前为止所做的: 这是一个在调试模式下作为控制台应用程序运行的C#Windows服务应用程序,它可以帮助我进入代码。 我在根目录中添加了一个名为“Resources.resx”的资源文件。 在我的资源文件中,我使用可视化设计器/编辑器添加了一些jpg图像和html文件。 在我将图像和html文件添加到资源文件后,我项目中的一个新文件夹显示为“Resources”,其中包含我添加的所有文件。 在这个新文件夹中,我转到了每个文件的属性,并将Build Action更改为Embedded Resource。 (我不知道这是否有必要。我搜索的一些博客说要试试。) 项目的名称空间称为“MicroSecurity.EmailService”。 为了获取资源文件的名称,我使用了 的GetType()。Assembly.GetManifestResourceNames() 我得到以下内容 GetType()。Assembly.GetManifestResourceNames(){string [2]} string [] [0]“MicroSecurity.EmailService.Services.EmailService.resources”string [1]“MicroSecurity.EmailService.Resources.resources”string 从此我发现“MicroSecurity.EmailService.Resources.resources”是我想要使用的字符串(索引1)。 我使用此代码来获取流对象。 var stream = Assembly.GetExecutingAssembly()。GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources”); 当我在调试期间向此变量添加监视时,我可以看到诸如图像的元数据之类的内容等。 这是我被困的地方。 我想访问名为“logo.jpg”的图像。 这是我正在做的图像,但它不起作用。 var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources.logo.jpg”); 如何从logo.jpg文件中获取流? 更新: 感谢安德鲁,我能够弄清楚。 下面是我为演示项目编写的一些代码,以便研究资源文件如何工作而不是直接嵌入文件。 我希望这有助于其他人澄清差异。 using System; using System.Drawing; using System.IO; using System.Reflection; namespace UsingResourceFiles { public class Program { /// […]

ConfigurationManager返回null而不是字符串值

我试图从我的App.config文件中检索存储在我的工作目录中的值,但是当我运行该程序时它返回null。 我很困惑为什么会这样,并且多次查看代码以试图发现错误。 这是我的App.config文件代码: 这是我的C#代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data; using System.Data.Common; namespace DataProviderFun { class Program { static void Main(string[] args) { string p = ConfigurationManager.AppSettings[“provider”]; string c = ConfigurationManager.ConnectionStrings[“connection”].ConnectionString; … 当我运行此代码时,p = null和c = null。 我引用了System.Configuration.dll。

将项目从C#迁移到Java

随着办公室人员配置的一些变化,C#专业知识的水平急剧下降,现在有更多的Java开发人员。 它已经达到了高层正在考虑将用C#编写的现有.NET项目移植到Java世界的程度。 除了完全从头开始的明显问题之外,该公司可以通过.NET C#成功实现项目开发的可能方式到Java?

以管理员身份运行:requireAdministrator&ClickOnce +模拟系统时间

我的应用程序使用ClickOnce tehcnology。 今天我需要以管理员身份运行它。 我修改了清单文件 至 但VS无法编译项目: 错误35 ClickOnce不支持请求执行级别’requireAdministrator’。 我认为不可能立即使用它们。 不是吗? 我需要更改系统时间,我可以在应用程序级别执行此操作吗? 我可以模仿它,所以应用程序。 能做我想做的事。 我改变时间+2小时然后放回一秒钟。 我有几个dll,他们要求时间。

C#,在for..loop中声明一个变量,会降低性能吗?

例如: for (i = 0; i < 100; i++) { string myvar = ""; // Some logic } 它会使性能或内存泄漏吗? 为什么我这样做,因为我不想在for..loop之外访问“myvar”。 它是任何性能监视器,我可以比较两个片段或整个程序之间的执行时间? 谢谢。

如何找出目录中有多少文件?

我需要计算目录中的文件数。 我可以使用System.IO.Directory.GetFiles()获取目录中所有文件的名称,并获取该数组的长度,但在大型目录上需要太长时间。 有没有办法获得计数而不必得到名字?