Questions tagged «c#»

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

10
将对象映射到字典,反之亦然
是否有任何优雅的快速方法将对象映射到字典,反之亦然? 例: IDictionary<string,object> a = new Dictionary<string,object>(); a["Id"]=1; a["Name"]="Ahmad"; // ..... 变成 SomeClass b = new SomeClass(); b.Id=1; b.Name="Ahmad"; // ..........

5
检查JObject中的空JToken是否为空
我有以下... JArray clients = (JArray)clientsParsed["objects"]; foreach (JObject item in clients.Children()) { // etc.. SQL params stuff... command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]); } JTokenToSql 看起来像这样... public static object JTokenToSql(JToken obj) { if (obj.Any()) return (object)obj; else return (object)DBNull.Value; } 我也尝试过((JObject)obj).Count。。但是似乎没有用。
90 c#  sql  json.net 

2
复合键作为外键
我在MVC 3应用程序中使用Entity Framework 4.1。我有一个实体,我的主键由两列组成(复合键)。这在另一个实体中用作外键。如何建立关系?在普通的scnerios中,我们使用: public class Category { public string CategoryId { get; set; } public string Name { get; set; } public virtual ICollection<Product> Products { get; set; } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public …



8
如何在接口上实现静态方法?
我有一个从C#调用的第三方C ++ DLL。 该方法是静态的。 我想将其抽象出来以进行一些单元测试,所以我创建了一个带有静态方法的接口,但是现在我的程序出现以下错误: 修饰语“静态”对此物品无效 MyMethod cannot be accessed with an instance reference; qualify it with a type name instead 如何实现这种抽象? 我的代码看起来像这样 private IInterfaceWithStaticMethods MyInterface; public MyClass(IInterfaceWithStaticMethods myInterface) { this.MyInterface = myInterface; } public void MyMethod() { MyInterface.StaticMethod(); }
90 c#  .net  interface 

4
“ await Task.Run();”之间的任何区别 返回;” 和“返回Task.Run()”?
以下两段代码之间在概念上有什么区别: async Task TestAsync() { await Task.Run(() => DoSomeWork()); } 和 Task TestAsync() { return Task.Run(() => DoSomeWork()); } 生成的代码是否也不同? 编辑:为避免与混淆Task.Run,类似的情况: async Task TestAsync() { await Task.Delay(1000); } 和 Task TestAsync() { return Task.Delay(1000); } 最新更新:除了可接受的答案,LocalCallContext处理方式也有所不同:即使没有异步,也可以还原CallContext.LogicalGetData。为什么?
90 c#  async-await 

3
无法从IEnumerable <T>转换为ICollection <T>
我定义了以下内容: public ICollection&lt;Item&gt; Items { get; set; } 当我运行此代码时: Items = _item.Get("001"); 我收到以下消息: Error 3 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable&lt;Storage.Models.Item&gt;' to 'System.Collections.Generic.ICollection&lt;Storage.Models.Item&gt;'. An explicit conversion exists (are you missing a cast?) 有人可以解释我在做什么错。我对Enumerable,Collections和ToList()之间的区别感到困惑 补充信息 在我的代码后面,我有以下内容: for (var index = 0; index &lt; Items.Count(); index++) 我可以将Items定义为IEnumerable吗?
90 c#  .net 

8
测试列表中的所有值是否唯一
我有一小部分字节,我想测试一下它们是否都是不同的值。例如,我有这个: List&lt;byte&gt; theList = new List&lt;byte&gt; { 1,4,3,6,1 }; 检查所有值是否不同的最佳方法是什么?
90 c# 

9
无法将类型'Int'隐式转换为'T'
我可以打电话Get&lt;int&gt;(Stat);或Get&lt;string&gt;(Name); 但是当编译时我得到: 无法将类型'int'隐式转换为'T' 和相同的事情string。 public T Get&lt;T&gt;(Stats type) where T : IConvertible { if (typeof(T) == typeof(int)) { int t = Convert.ToInt16(PlayerStats[type]); return t; } if (typeof(T) == typeof(string)) { string t = PlayerStats[type].ToString(); return t; } }
90 c#  generics 

7
从ASP .Net Core 1.0.0-rc2-final交换为1.0.0时,JSON属性现在小写
我刚刚将项目从ASP .Net Core 1.0.0-rc2-final交换为1.0.0。由于JSON属性的大写,我们的网站和客户端已停止工作。例如,此行JavaScript现在失败 for (var i = 0; i &lt; collection.Items.length; i++){ 因为控制器现在将数组称为“ items”而不是“ Items”。除了安装更新的软件包和编辑project.json文件外,我没有做任何更改。我尚未更改仍使用其属性的C#模型文件。 为什么ASP.Net Core控制器开始使用小写属性返回JSON?我该如何回到他们那里来纪念模型中属性名称的大小写?

9
如何只在javascript中做LINQ SelectMany()的等效项
不幸的是,我没有JQuery或Underscore,只有纯JavaScript(与IE9兼容)。 我想要LINQ功能中的SelectMany()。 // SelectMany flattens it to just a list of phone numbers. IEnumerable&lt;PhoneNumber&gt; phoneNumbers = people.SelectMany(p =&gt; p.PhoneNumbers); 我可以做吗? 编辑: 多亏了答案,我才开始工作: var petOwners = [ { Name: "Higa, Sidney", Pets: ["Scruffy", "Sam"] }, { Name: "Ashkenazi, Ronen", Pets: ["Walker", "Sugar"] }, { Name: "Price, Vernette", Pets: ["Scratches", "Diesel"] }, …
90 javascript  c# 

4
表达式树lambda不得包含空传播运算符
问题:price = co?.price ?? 0,以下代码中的行给了我上面的错误。但是如果我?从中删除,co.?效果很好。我试图按照此MSDN例如,他们使用的是?上线select new { person.FirstName, PetName = subpet?.Name ?? String.Empty };所以,看来我需要了解什么时候使用?与??和何时不。 错误: 表达式树lambda不得包含空传播运算符 public class CustomerOrdersModelView { public string CustomerID { get; set; } public int FY { get; set; } public float? price { get; set; } .... .... } public async Task&lt;IActionResult&gt; ProductAnnualReport(string rpt) { …

3
需要了解SemaphoreSlim的用法
这是我的代码,但我不知道SemaphoreSlim在做什么。 async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List&lt;Task&gt; trackedTasks = new List&lt;Task&gt;(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() =&gt; { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg != null) { Thread.Sleep(2000); // process the long running CPU-bound job …

6
如何在ASP.NET Core中实施小写路由?
在ASP.NET 4中,这就像routes.LowercaseUrls = true;在RegisterRoutes应用程序的处理程序中一样容易。 我无法在ASP.NET Core中找到等效的方法来实现此目的。我想它会在这里: app.UseMvc(configureRoutes =&gt; { configureRoutes.MapRoute("Default", "{controller=App}/{action=Index}/{id?}"); }); 但是configureRoutes看起来没有什么允许它...除非我可能在文档中找不到某个扩展方法?

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.