Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

12
使用LINQ搜索树
我有一个从此类创建的树。 class Node { public string Key { get; } public List<Node> Children { get; } } 我想搜索所有孩子及其所有孩子,以找到符合条件的孩子: node.Key == SomeSpecialKey 我该如何实施?
87 c#  .net  linq 

7
如何将多个程序集合并为一个?
我使用EXE项目(Azure应用程序的启动任务)消耗了服务堆栈,因为我将以下服务堆栈的DLL和某些Azure的DLL复制到了EXE项目中。 当我构建此EXE项目时,Azure DLL将与我的EXE捆绑在一起,但是服务堆栈的DLL将不与EXE捆绑在一起,因为要在任何计算机上运行我的EXE,我都需要手动复制所有服务堆栈的DLL。 我已经使用了该服务栈的dll JsonServiceClient client = new JsonServiceClient(servicepath); 我应该怎么做才能将所有这些DLL捆绑到我的EXE中?



11
如何在C#中使用迭代器反向读取文本文件
我需要处理一个大文件,大约40万行和200M。但是有时我必须从头开始处理。如何在这里使用迭代器(收益率回报)?基本上,我不喜欢将所有内容加载到内存中。我知道在.NET中使用迭代器效率更高。
87 c#  .net 

5
Console.WriteLine()是否需要这么多参数重载?
我浏览了文档,发现该Console.WriteLine()方法有一些重载。特别是,我的好奇心和部分困惑与这些有关: public static void WriteLine(string format, params object[] arg); public static void WriteLine(string format, object arg0); public static void WriteLine(string format, object arg0, object arg1); public static void WriteLine(string format, object arg0, object arg1, object arg2); public static void WriteLine(string format, object arg0, object arg1, object arg2, object arg3); 似乎多余。在第一个重载之上的其他四个重载有什么需求?第一种方法可以执行其他方法可以执行的所有操作。他们是否试图通过提供额外的重载来解决性能问题,这些重载最多可以处理四个参数(最后一个)?通过最多四个参数组成的数组的开销是否足够大,可以满足这些重载的需要?
87 c# 

7
MemoryCache不遵循配置中的内存限制
我正在使用应用程序中的.NET 4.0 MemoryCache类,并试图限制最大缓存大小,但是在我的测试中,似乎没有缓存实际上在遵守限制。 根据MSDN,我使用的设置应该限制​​缓存大小: CacheMemoryLimitMegabytes:对象实例可以增长到的最大内存大小(以兆字节为单位)。” PhysicalMemoryLimitPercentage: “高速缓存可以使用的物理内存的百分比,表示为1到100之间的整数。默认值为零,这表示MemoryCache实例根据安装在其上的内存量来管理自己的内存1。电脑。” 1.这并不完全正确-低于4的任何值都将被忽略并替换为4。 我知道这些值是近似值,而不是硬性限制,因为清除缓存的线程每x秒触发一次,并且还取决于轮询间隔和其他未记录的变量。但是,即使考虑到这些差异,当在测试应用程序中将CacheMemoryLimitMegabytes 和PhysicalMemoryLimitPercentage一起设置或单独设置后,从缓存中逐出第一项时,我仍然看到非常不一致的缓存大小。为了确保我每次测试都跑了10次并计算出平均值。 这些是在具有3GB RAM的32位Windows 7 PC上测试以下示例代码的结果。在第一次调用CacheItemRemoved()之后获取缓存的大小在每个测试。(我知道缓存的实际大小会大于此大小) MemLimitMB MemLimitPct AVG Cache MB on first expiry 1 NA 84 2 NA 84 3 NA 84 6 NA 84 NA 1 84 NA 4 84 NA 10 84 10 20 81 10 30 81 10 …
87 c#  .net  caching  memorycache 

12
Visual Studio中大型解决方案的最佳实践(2008)[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我们有一个解决方案,涉及大约100多个项目,其中大多数是C#。自然,打开和构建都需要很长时间,因此我正在寻找此类野兽的最佳实践。我希望得到的答案是: 您如何最好地处理项目之间的引用 应该打开还是关闭“本地复制”? 应该将每个项目都构建到其自己的文件夹,还是应该将它们都构建到相同的输出文件夹(它们都属于同一应用程序) 解决方案的文件夹是整理资料的好方法吗? 我知道将解决方案分为多个较小的解决方案是一种选择,但这带有其自身的一系列重构和令人头疼的问题,因此也许我们可以将其保存在单独的线程中:-)

9
在.NET中应该为null的哈希码始终为零
给定像System.Collections.Generic.HashSet<>接受这样的集合null作为集合成员,就可以问它的哈希码null应该是什么。看起来框架使用0: // nullable struct type int? i = null; i.GetHashCode(); // gives 0 EqualityComparer<int?>.Default.GetHashCode(i); // gives 0 // class type CultureInfo c = null; EqualityComparer<CultureInfo>.Default.GetHashCode(c); // gives 0 对于可为空的枚举,这可能会(有一点)问题。如果我们定义 enum Season { Spring, Summer, Autumn, Winter, } 那么Nullable<Season>(也称为Season?)只能使用五个值,但是其中两个(null和Season.Spring)具有相同的哈希码。 编写这样的“更好”的相等比较器很诱人: class NewNullEnumEqComp<T> : EqualityComparer<T?> where T : struct { public override …
87 c#  .net  hash  null 

17
在C#中将数据表转换为JSON
我想从数据库获取记录到 DataTable。 然后将转换DataTable为JSON对象。 将JSON对象返回到我的JavaScript函数。 我通过调用以下代码来使用: string result = JsonConvert.SerializeObject(DatatableToDictionary(queryResult, "Title"), Newtonsoft.Json.Formatting.Indented); 要将DataTable转换为JSON,它可以正常工作并返回以下内容: { "1": { "viewCount": 703, "clickCount": 98 }, "2": { "viewCount": 509, "clickCount": 85 }, "3": { "viewCount": 578, "clickCount": 86 }, "4": { "viewCount": 737, "clickCount": 108 }, "5": { "viewCount": 769, "clickCount": 130 } } 但我希望它返回以下内容: …
87 c#  json  datatable 


16
C#开发人员在学习Java时,可能会忽略的最大差异是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 对于渴望学习Java的C#开发人员,应该指出这两种语言之间是否存在巨大的根本差异? 也许有些人可能会认为事情是相同的,但是有些重要的方面不容忽视?(或者您真的可以搞砸!) 也许就OOP构造,GC的工作方式,参考,与部署相关的方面而言,等等。
87 c#  java 


6
比较System.Double与'0'的正确方法(一个数字,整数?)
抱歉,这可能是一个简单的愚蠢问题,但是我需要确定一下。 我有这个if表情 void Foo() { System.Double something = GetSomething(); if (something == 0) //Comparison of floating point numbers with equality // operator. Possible loss of precision while rounding value {} } 那表达等于吗 void Foo() { System.Double something = GetSomething(); if (something < 1) {} } ?因为那样我可能会遇到问题,请输入if一个值为0.9的。
87 c#  compare 

9
密码保护SQLite数据库。可能吗?
我必须面对一个新的小项目。它将有大约7或9个表,其中最大的一个表将以每月1000行的最大速度增长。 我考虑将SQLite作为我的数据库...但是如果有人要更改数据库中的数据,我将需要保护数据库。 我的主要问题是: 是否可以像访问时那样用密码保护sqlite数据库? 对于如此小的解决方案,您会建议其他哪些RDBMS? 开发将在C#上进行,但我正在免费搜索。
87 c#  sqlite 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.