Questions tagged «c#»

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

14
在构造使用该数据的XmlReader或XPathDocument之前,如何从基于XML的数据源中删除无效的十六进制字符?
在XmlReader中使用它之前,是否有任何简单/通用的方法来清理基于XML的数据源,以便我可以正常使用与XML上的十六进制字符限制不一致的XML数据? 注意: 该解决方案需要处理使用UTF-8以外的字符编码的XML数据源,例如,通过在XML文档声明中指定字符编码。剥离无效的十六进制字符时不破坏源代码的字符编码已成为主要问题。 删除无效的十六进制字符仅应删除十六进制编码的值,因为您经常会在数据中恰好包含一个与十六进制字符匹配的字符串的数据中找到href值。 背景: 我需要使用符合特定格式(例如Atom或RSS feed)的基于XML的数据源,但希望能够使用已发布的数据源(根据XML规范包含无效的十六进制字符)。 在.NET中,如果您有一个表示XML数据源的Stream,然后尝试使用XmlReader和/或XPathDocument对其进行解析,则会由于XML数据中包含无效的十六进制字符而引发异常。我当前解决此问题的尝试是将Stream解析为字符串,并使用正则表达式删除和/或替换无效的十六进制字符,但是我正在寻找一种性能更高的解决方案。
76 c#  xml  validation  encoding 

5
.NET-将通用集合转换为数据表
我正在尝试将通用集合(列表)转换为DataTable。我发现以下代码可以帮助我做到这一点: // Sorry about indentation public class CollectionHelper { private CollectionHelper() { } // this is the method I have been using public static DataTable ConvertTo<T>(IList<T> list) { DataTable table = CreateTable<T>(); Type entityType = typeof(T); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType); foreach (T item in list) { DataRow row = table.NewRow(); …

4
我怎么知道从流中获得什么图像格式?
我从某些Web服务获取字节流。该字节流包含图像的二进制日期,我正在使用以下方法将其转换为Image实例。 我需要知道我有什么样的形象。它是简单的位图(*.bmp)还是JPEG图像(*.jpg)或png图像? 我如何找到它? public static Image byteArrayToImage( byte[] bmpBytes ) { Image image = null; using( MemoryStream stream = new MemoryStream( bmpBytes ) ) { image = Image.FromStream( stream ); } return image; }
76 c#  image 

5
LINQ to SQL中的TransactionScope与事务
LINQ to SQL中的经典事务处理模式之间有什么区别: using(var context = Domain.Instance.GetContext()) { try { context.Connection.Open(); context.Transaction = context.Connection.BeginTransaction(); /*code*/ context.Transaction.Commit(); } catch { context.Transaction.Rollback(); } } 与TransactionScope对象 using (var context = Domain.Instance.GetContext()) using (var scope = new TransactionScope()) { try { /*code*/ scope.Complete(); } catch { } }


9
C#的JSON库
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 Microsoft是否提供任何库以在C#中使用JSON?如果没有,您推荐什么开源库?
76 c#  json 



4
使用此复合形式时,为什么用XOR交换值失败?
我发现此代码使用XOR^运算符在不使用第三个变量的情况下交换了两个数字。 码: int i = 25; int j = 36; j ^= i; i ^= j; j ^= i; Console.WriteLine("i:" + i + " j:" + j); //numbers Swapped correctly //Output: i:36 j:25 现在,我将上面的代码更改为该等效代码。 我的代码: int i = 25; int j = 36; j ^= i ^= j ^= i; …
76 c#  swap  xor 

3
ILookup <TKey,TVal>与IGrouping <TKey,TVal>
我一直有麻烦之间阐明的差异ILookup&lt;TKey, TVal&gt;和IGrouping&lt;TKey, TVal&gt;,并很好奇,如果我理解正确了。LINQ通过产生IGrouping项目序列使问题更加复杂,同时还提供了ToLookup扩展方法。因此,直到我仔细观察之前,它们似乎都是一样的。 var q1 = from n in N group n by n.MyKey into g select g; // q1 is IEnumerable&lt;IGrouping&lt;TKey, TVal&gt;&gt; 等效于: var q2 = N.GroupBy(n =&gt; n.MyKey, n =&gt; n); // q2 is IEnumerable&lt;IGrouping&lt;TKey, TVal&gt;&gt; 看起来很像: var q3 = N.ToLookup(n =&gt; n.MyKey, n =&gt; n); // q3 …

9
在C#中创建iCal文件
我正在寻找一种在C#(asp.net)中生成iCalendar文件(* .ics)的好方法。我找到了一些资源,但是缺少的一件事是它们对带引号的可打印字段(具有回车符和换行符的字段)的支持。 例如,如果描述字段的编码不正确,则仅显示第一行,并可能破坏* .ics文件中的其余信息。 我正在寻找可以生成* .ics文件的现有类和/或可以生成带引号的可打印字段的类。
76 c#  asp.net  icalendar 

5
空接口代码是否有异味?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 5年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我有一个函数返回相同类型的对象(查询结果),但没有共同的属性或方法。为了具有通用类型,我求助于使用一个空接口作为返回类型,并在两者上“实现”。 那听起来当然不对。我只能抱有希望,希望有一天这些类将有一些共同点,并将这种共同的逻辑移到我的空接口上,以此来安慰自己。但是我不满意,正在考虑是否应该使用两种不同的方法并有条件地调用next。那会是更好的方法吗? 有人还告诉我.NET Framework使用空接口进行标记。 我的问题是:空接口是设计问题的有力标志还是被广泛使用? 编辑:对于那些感兴趣的人,我后来发现,功能语言中的有区别的联合是我要实现的目标的完美解决方案。C#似乎对该概念并不友好。 编辑:我写了一篇关于这个问题的较长文章,详细解释了这个问题和解决方案。

7
XSD代码生成器的比较[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我正在研究从xsd模式文件生成代码。我的要求: 必须在需要的地方使用通用集合生成C#2.0代码(或更高版本)。 必须从xsd注释生成注释 必须生成完全可序列化的代码。 从具有相同include的多个xsd生成时,应该能够生成可恢复的基本类型。 (另请参见我的其他问题:如何从具有公共包含的xsd生成多个类?以及如何从wsdl中的xs:documentation标记生成注释? 我发现以下选项: 使用xsd.exe(SDK和Visual Studio随附) Daniel Cazzulino的XSDCodeGen Xsd2Code CodeXS XsdObjectGen由Microsoft XSDClassGen(似乎缺少作用) 我有想念吗?因为(1),(2)和(5)不会生成2.0代码,并且我在序列化(3)中的代码时遇到问题。生成代码时使用什么?

27
Visual Studio-继续编辑后出现错误“找不到元数据文件'XYZ'”
我偶然发现了一个非常烦人的问题。 当我调试软件时,一切运行正常,但是如果遇到断点并编辑代码,则在尝试继续运行时出现错误: Metadata file 'XYZ' could not be found 环顾了一会后,我发现了一些类似的问题,但是它们都与构建失败有关,这不是我的情况(这种情况仅在继续编辑后才会发生)。 到目前为止我尝试过的是: 我的代码正在编译并运行。 我清理了解决方案,然后重新启动了VS。 我确保正在为我正在运行的配置(在配置管理器中)构建缺少文件的项目。 我手动建立了丢失文件的项目。 一些额外的信息: 不管我更改什么,仍然会得到相同的错误(更改与丢失的文件无关)。 当我暂停并继续时(不仅是断点),也会发生这种情况 我正在使用自定义配置(配置管理器...)运行项目。当我使用默认Debug配置运行它时,不会发生错误。 有任何想法吗?

7
C#遍历NameValueCollection
我有一个NameValueCollection,并且想要遍历这些值。目前,我正在这样做,但是似乎应该有一种更整洁的方法: NameValueCollection nvc = new NameValueCollection(); nvc.Add("Test", "Val1"); nvc.Add("Test2", "Val1"); nvc.Add("Test2", "Val1"); nvc.Add("Test2", "Val2"); nvc.Add("Test3", "Val1"); nvc.Add("Test4", "Val4"); foreach (string s in nvc) foreach (string v in nvc.GetValues(s)) Console.WriteLine("{0} {1}", s, v); Console.ReadLine(); 在那儿?

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.