Questions tagged «c#»

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



20
如何通过对象中的属性对List <T>进行排序
我有一个名为类Order具有的属性,例如OrderId,OrderDate,Quantity,和Total。我有这个Order班的清单: List&lt;Order&gt; objListOrder = new List&lt;Order&gt;(); GetOrderList(objListOrder); // fill list of orders 现在,我想根据Order对象的一个属性对列表进行排序,例如,我需要按订单日期或订单ID对其进行排序。 我该如何在C#中做到这一点?
1247 c#  generics  list  sorting 

5
\ d的效率不及[0-9]
我昨天做了评论,其中有人曾用一个答案[0123456789]的正则表达式,而不是[0-9]或\d。我说过使用范围或数字说明符可能比使用字符集更有效。 我决定今天进行测试,令我惊讶的是(至少在C#regex引擎中)\d似乎效率比其他两个似乎相差不大的效率低。这是我的测试输出,超过10000个随机字符串,包含1000个随机字符,其中5077个实际上包含一个数字: Regular expression \d took 00:00:00.2141226 result: 5077/10000 Regular expression [0-9] took 00:00:00.1357972 result: 5077/10000 63.42 % of first Regular expression [0123456789] took 00:00:00.1388997 result: 5077/10000 64.87 % of first 令我惊讶的有两个原因: 我以为该范围将比集合有效得多。 我不明白为什么\d会比差[0-9]。有没有更多的\d不是简单的简写[0-9]? 这是测试代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace SO_RegexPerformance { …
1246 c#  regex  performance 

30
URL的Path.Combine吗?
Path.Combine很方便,但是.NET框架中有类似的URL功能吗? 我正在寻找这样的语法: Url.Combine("http://MyUrl.com/", "/Images/Image.jpg") 这将返回: "http://MyUrl.com/Images/Image.jpg"
1242 c#  .net  asp.net  url  path 

21
创建将T约束为枚举的泛型方法
我建立一个功能扩展Enum.Parse的概念, 如果找不到Enum值,则允许解析默认值 不区分大小写 所以我写了以下内容: public static T GetEnumFromString&lt;T&gt;(string value, T defaultValue) where T : Enum { if (string.IsNullOrEmpty(value)) return defaultValue; foreach (T item in Enum.GetValues(typeof(T))) { if (item.ToString().ToLower().Equals(value.Trim().ToLower())) return item; } return defaultValue; } 我收到错误约束不能是特殊类System.Enum。 足够公平,但是有没有允许通用枚举的变通办法,或者我将不得不模仿该Parse函数并将类型作为属性传递,这对代码强制了严格的装箱要求。 编辑谢谢所有下面的建议。 已经解决(我离开了循环以保持不区分大小写-解析XML时正在使用它) public static class EnumUtils { public static T ParseEnum&lt;T&gt;(string value, T defaultValue) …

27
JavaScriptSerializer-枚举的JSON序列化为字符串
Наэтотвопросестьответына 堆栈溢出нарусском:Сериализация枚举вJSONввидестроки 我有一个包含enum属性的类,并使用序列化对象后JavaScriptSerializer,我的json结果包含枚举的整数值而不是其string“名称”。有没有一种方法可以string在我的json中获取枚举而无需创建自定义JavaScriptConverter?也许有一个属性,我可以装饰enum定义或对象属性? 举个例子: enum Gender { Male, Female } class Person { int Age { get; set; } Gender Gender { get; set; } } 所需的json结果: { "Age": 35, "Gender": "Male" } 理想情况下,使用内置的.NET框架类寻找答案,如果可能的话,欢迎使用替代方法(如Json.net)。



20
LINQ在特定属性上的Distinct()
我正在与LINQ一起学习有关它的信息,但是Distinct当我没有简单的列表(简单的整数列表很容易做到,这不是问题)时,我不知道如何使用。如果要在对象的一个或多个属性上的对象列表上使用Distinct,该怎么办? 示例:如果一个对象是Person,则带有Property Id。如何获得所有Person并将Distinct其与Id对象的属性一起使用? Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Name="Test2" 我怎样才能得到Person1和Person3?那可能吗? 如果LINQ无法实现,那么Person根据.NET 3.5中的某些属性列出内容的最佳方法是什么?
1094 c#  linq  .net-3.5  distinct 


14
返回IEnumerable <T>与IQueryable <T>
Return IQueryable&lt;T&gt;与vs 之间的区别是什么IEnumerable&lt;T&gt;,何时应该优先选择另一个? IQueryable&lt;Customer&gt; custs = from c in db.Customers where c.City == "&lt;City&gt;" select c; IEnumerable&lt;Customer&gt; custs = from c in db.Customers where c.City == "&lt;City&gt;" select c;

16
Select和SelectMany之间的区别
我一直在寻找和之间的区别Select,SelectMany但找不到合适的答案。我需要学习使用LINQ To SQL的区别,但我发现的只是标准数组示例。 有人可以提供LINQ To SQL示例吗?
1071 c#  linq-to-sql  linq 

8
如何使用反射调用泛型方法?
当类型参数在编译时未知,而是在运行时动态获取时,调用通用方法的最佳方法是什么? 考虑下面的示例代码-内部Example()方法,什么是最简洁的方式来调用GenericMethod&lt;T&gt;()使用Type存储在myType变量? public class Sample { public void Example(string typeName) { Type myType = FindType(typeName); // What goes here to call GenericMethod&lt;T&gt;()? GenericMethod&lt;myType&gt;(); // This doesn't work // What changes to call StaticMethod&lt;T&gt;()? Sample.StaticMethod&lt;myType&gt;(); // This also doesn't work } public void GenericMethod&lt;T&gt;() { // ... } public static void …
1069 c#  .net  generics  reflection 

21
如何以及何时使用“异步”和“等待”
根据我的理解async,await要做的主要事情之一就是使代码易于编写和阅读-但是使用它们是否等同于产生后台线程来执行长时间逻辑? 我目前正在尝试最基本的示例。我在行中添加了一些评论。你能为我澄清一下吗? // I don't understand why this method must be marked as `async`. private async void button1_Click(object sender, EventArgs e) { Task&lt;int&gt; access = DoSomethingAsync(); // task independent stuff here // this line is reached after the 5 seconds sleep from // DoSomethingAsync() method. Shouldn't it be reached immediately? …

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.