Tag: .net

使用多个字段过滤/搜索 – ASP.NET MVC

我在EF 6中使用ASP.NET MVC 。 我有一个库存页面,显示库存商品的所有信息。 现在我想过滤记录。 在下图中我有3个选项。 我可以按每个选项进行过滤,一次一个,或者两个或全部三个组合。 我正在考虑为所选的每个选项编写linq查询。 但是如果filter选项增加,这将是不可能的。有更好的方法。 谢谢! 这就是我在我的控制器中所做的。(目前下拉有两个选项,不包括:“ – 选择一个 – ”) public ActionResult StockLevel(string option, string batch, string name) { if (option != “0” && batch == “” && name == “”) { if(option == “BelowMin”) { List stk = (from s in db.Stocks where s.Qty < s.Item.AlertQty select s).ToList(); […]

为什么枚举需要显式转换为int类型?

这样做没有数据丢失,那么为什么必须明确地将枚举转换为整数? 如果它是隐含的,那么它是不是更直观,比如当你有更高级别的方法时: PerformOperation ( OperationType.Silent type ) 其中, PerformOperation调用一个被PerformOperation的包装C ++方法: _unmanaged_perform_operation ( int operation_type )

如何从.NET设置X.509证书的私钥文件的读取权限

以下是将pfx添加到Cert商店的代码。 X509Store store = new X509Store( StoreName.My, StoreLocation.LocalMachine ); store.Open( OpenFlags.ReadWrite ); X509Certificate2 cert = new X509Certificate2( “test.pfx”, “password” ); store.Add( cert ); store.Close(); 但是,我找不到为NetworkService设置访问私钥的权限的方法。 任何人都能解释一下吗? 提前致谢。

.NET中管理单独(单个)线程上任务队列的最佳方式

我知道异步编程多年来已经发生了很多变化。 我有点尴尬,我让自己在34岁时就生锈了,但我依靠StackOverflow让我加快速度。 我想要做的是在一个单独的线程上管理“工作”队列,但是这样一次只能处理一个项目。 我想在这个线程上发布工作,它不需要将任何东西传递给调用者。 当然,我可以简单地启动一个新的Thread对象并让它在一个共享的Queue对象上循环,使用sleeps,interrupt,wait handle等等。但是我知道事情从那以后变得更好了。 我们有BlockingCollection , Task , async / await ,更不用说可能抽象了很多的NuGet包。 我知道“什么是最好的……”这些问题通常是不受欢迎的,所以我会通过说“目前推荐的是什么……”的方式来改写,最好使用内置的.NET机制。 但是如果第三方NuGet包简化了一堆东西,它也是如此。 我认为一个TaskScheduler实例的固定最大并发性为1,但似乎现在可能没有那么笨重的方法了。 背景 具体来说,我在这种情况下尝试做的是在Web请求期间排队IP地理定位任务。 相同的IP可能会多次排队等待地理定位,但是任务将知道如何检测并尽快跳过,如果它已经解决了。 但请求处理程序只是将这些() => LocateAddress(context.Request.UserHostAddress)调用抛出到队列中,让LocateAddress方法处理重复的工作检测。 我正在使用的地理位置API不喜欢被请求轰炸,这就是为什么我想一次将它限制为单个并发任务。 但是,如果允许通过简单的参数更改轻松扩展到更多并发任务,那将会很好。

使用Enumerable.Range消耗大量内存?

最初我想知道ToList是否比使用List的构造函数分配更多的内存,它采用IEnumerable (没有区别)。 出于测试目的,我使用Enumerable.Range创建了一个源数组,我可以用它来创建List的实例,通过1. ToList和2. 构造函数 。 两者都在创建副本。 这就是我注意到以下内存消耗的巨大差异: Enumerable.Range(1, 10000000)或 Enumerable.Range(1, 10000000).ToArray() 当我使用第一个并调用ToList ,生成的对象比数组(38,26MB / 64MB)节省大约60%的内存。 问:推理错误的原因是什么? var memoryBefore = GC.GetTotalMemory(true); var range = Enumerable.Range(1, 10000000); var rangeMem = GC.GetTotalMemory(true) – memoryBefore; // negligible var list = range.ToList(); var memoryList = GC.GetTotalMemory(true) – memoryBefore – rangeMem; String memInfoEnumerable = String.Format(“Memory before: {0:N2} MB List: {1:N2} […]

如何在C#中解码字符串到XML字符串

我有一个字符串(来自CDATA元素),其中包含XML的描述。 我需要将此字符串解码为一个新字符串,使用C#正确显示字符 现有字符串: <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?><myreport xmlns=”http://test.com/rules/client”><admin><ordernumber>123</ordernumber><state>NY</state></report></myreport> 字符串通缉: 123NY

为什么在实现接口时C#不允许inheritance返回类型

有没有合理的理由说明为什么下面的代码在C#中不合法? class X: IA, IB { public X test() // Compliation Error, saying that X is not IB { return this; } } interface IA { IB test(); } interface IB { };

获取应用程序的窗口句柄

我正在构建一个应用程序给另一个应用程序mainWindowhandle它收集有关窗口状态的信息。 我收集有关子窗口的信息没有问题,但我无法访问应用程序的其他打开窗口甚至菜单。 有没有办法获取应用程序的所有窗口句柄?

如何比较两个富文本框内容并突出显示更改的字符?

我用来读取2个richtextbox内容的代码如下: richTextBox1.Text = File.ReadAllText(tfsVersionFilePath); richTextBox2.Text = File.ReadAllText(dbVersionFilePath); 现在,我需要比较两个富文本框内容,并突出显示两个richtextbox中更改的字符。 目的是通过c#应用程序获取差异并突出显示as in TFS (比较文件)中的字符。 谢谢。 编辑: int length = (richTextBox1.Text.Length > richTextBox2.Text.Length) ? richTextBox1.Text.Length : richTextBox2.Text.Length; for (int i = 0; i < length; i++) { if (richTextBox1.Text[i] != richTextBox2.Text[i]) { /* and then start your highlight selection here, this is where some difference between the two […]

如何解决c#中的.lnk

我需要找出.lnk使用c#指向的文件/目录名。 最简单的方法是什么? 谢谢。