Questions tagged «c#»

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


12
比较两个通用列表差异的最快方法
比较两个大型项目(> 50.000个项目)最快(且最不占用资源)是什么,因此有两个列表如下: 显示在第一个列表中但不在第二个列表中的项目 出现在第二个列表中但不在第一个列表中的项目 目前,我正在使用List或IReadOnlyCollection,并在linq查询中解决此问题: var list1 = list.Where(i => !list2.Contains(i)).ToList(); var list2 = list2.Where(i => !list.Contains(i)).ToList(); 但这并没有我想要的那样好。有什么想法可以让我更快地处理和减少资源消耗,因为我需要处理很多列表?
213 c#  linq  list 

13
.NET数据结构:ArrayList,List,HashTable,Dictionary,SortedList,SortedDictionary —速度,内存以及何时使用它们?
.NET具有许多复杂的数据结构。不幸的是,它们中的一些非常相似,而且我并不总是确定何时使用一种以及何时使用另一种。我的大多数C#和Visual Basic书籍都在一定程度上谈论它们,但是它们从未真正涉及任何细节。 Array,ArrayList,List,Hashtable,Dictionary,SortedList和SortedDictionary有什么区别? 哪些是可枚举的(IList-可以执行“ foreach”循环)?哪些使用键/值对(IDict)? 那内存占用呢?插入速度?检索速度? 还有其他值得一提的数据结构吗? 我仍在寻找有关内存使用和速度(Big-O表示法)的更多详细信息。

16
String.Replace忽略大小写
我有一个字符串叫做“ hello world” 我需要将“世界”一词替换为“ csharp” 为此,我使用: string.Replace("World", "csharp"); 但是结果是,我没有替换字符串。原因是区分大小写。原始字符串包含“世界”,而我正在尝试替换“世界”。 有什么办法可以避免在string.Replace方法中区分大小写?
213 c#  string 

7
使用ASP.NET Identity时如何更改表名称?
我正在使用Visual Studio 2013的发行版(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用的是AspNet.Identity的最新(RTM)版本。创建新的Web项目时,我选择“个人用户帐户”进行身份验证。这将创建下表: AspNetRoles AspNetUserClaims AspNetUserLogins AspNetUserRoles AspNetUsers 当我注册新用户(使用默认模板)时,将创建这些表(上面列出),并且AspNetUsers表插入了一条记录,其中包含: ID 用户名 密码哈希 安全邮票 鉴别器 此外,通过将公共属性添加到“ ApplicationUser”类,我已成功将其他字段添加到AspNetUsers表中,例如“ FirstName”,“ LastName”,“ PhoneNumber”等。 这是我的问题。有没有办法更改上述表的名称(首次创建时),还是总是使用AspNet上面列出的前缀来命名它们?如果可以使用不同的名称命名表,请说明如何使用。 -更新- 我实现了@Hao Kung的解决方案。它的确创建了一个新表(例如,我称其为MyUsers),但它仍然创建了AspNetUsers表。目标是将“ AspNetUsers”表替换为“ MyUsers”表。请参见下面的代码和所创建表的数据库图像。 我实际上想AspNet用我自己的名称替换每个表...对于fxample,MyRoles,MyUserClaims,MyUserLogins,MyUserRoles和MyUsers。 我该如何做到这一点并最终只得到一组表? public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public string …

9
扩展方法必须在非通用静态类中定义
我收到错误消息: 扩展方法必须在非通用静态类中定义 在线上: public class LinqHelper 这是基于Mark Gavells代码的帮助程序类。我对这个错误的含义感到非常困惑,因为我确信当我在星期五离开它时,它可以正常工作! using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Linq.Expressions; using System.Reflection; /// <summary> /// Helper methods for link /// </summary> public class LinqHelper { public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedQueryable<T> …

9
HTTP POST返回错误:417“预期失败。”
当我尝试发布到URL时,会导致以下异常: 远程服务器返回错误:(417)预期失败。 这是一个示例代码: var client = new WebClient(); var postData = new NameValueCollection(); postData.Add("postParamName", "postParamValue"); byte[] responseBytes = client.UploadValues("http://...", postData); string response = Encoding.UTF8.GetString(responseBytes); // (417) Expectation Failed. 使用一HttpWebRequest/HttpWebResponse对或一个HttpClient并没有什么不同。 是什么导致此异常?
212 c#  .net  http  http-post  webclient 


5
ASP.NET Web API中的可选查询字符串参数
我需要实现以下WebAPI方法: /api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX 所有查询字符串参数都可以为null。也就是说,调用者可以指定0到5个参数中的所有参数。 在MVC4 Beta中,我曾经执行以下操作: public class BooksController : ApiController { // GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01 public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date) { // ... } } MVC4 RC不再具有这种行为。如果我指定的参数少于5个,它会回答404: 在控制器“ Books”上未找到与请求匹配的操作。 不需要在URL路由中指定可选参数的正确方法签名,使其具有与以前一样的行为?

25
检查SqlDataReader对象中的列名
如何检查SqlDataReader对象中是否存在列?在我的数据访问层中,我创建了一个为多个存储过程调用构建相同对象的方法。其中一个存储过程具有其他存储过程未使用的附加列。我想修改该方法以适应每种情况。 我的应用程序是用C#编写的。
212 c#  .net  sqldatareader 

16
C#中的多重继承
由于多重继承很糟糕(这会使源代码更加复杂),因此C#不会直接提供这种模式。但是有时具有此功能会有所帮助。 例如,我能够使用接口和三个类似的类来实现缺少的多继承模式: public interface IFirst { void FirstMethod(); } public interface ISecond { void SecondMethod(); } public class First:IFirst { public void FirstMethod() { Console.WriteLine("First"); } } public class Second:ISecond { public void SecondMethod() { Console.WriteLine("Second"); } } public class FirstAndSecond: IFirst, ISecond { First first = new First(); Second …

4
C#-有选择地禁止自定义过时警告
Obsolete如果使用某种方法,我正在使用该属性(正如其他程序员所建议的那样)显示警告。 有没有一种方法可以SuppressMessage在合理使用时抑制类似于CodeAnalysis的警告? 谢谢! 编辑 这是[Obsolete("Some message")]因为我需要包含有关警告的一些详细信息。但是,#pragma warning disable 612一旦我将邮件添加到裸[Obsolete]属性中,它就不再起作用... 编辑2 找到了正确的警告编号- 如果您在过时的属性后显示一条消息,则为618。 所以要做我想做的事: #pragma warning disable 618 然后通话后 #pragma warning restore 618 感谢Jared Par和Jon Skeet为我指出正确的方向!

27
无法加载文件或程序集……参数不正确
最近,我在C#解决方案中遇到了以下异常: 错误2无法加载文件或程序集'Newtonsoft.Json,版本= 3.5.0.0,文化=中性,PublicKeyToken = b9a188c8922137c6'或其依赖项之一。参数错误。(来自HRESULT的异常:0x80070057(E_INVALIDARG)) 这既不依赖于我的代码也不依赖于程序集的名称(如Newtonsoft.Json本例所示)。 当我从解决方案中删除此dll时,编译器会在同一异常中告知另一个dll。所以我想应该在我的电脑上关闭/打开某些东西:)


3
该类型必须是引用类型,才能在通用类型或方法中将其用作参数“ T”
我正在深入研究泛型,现在有需要帮助的情况。如主题标题所示,我在下面的“派生”类上遇到编译错误。我看到许多其他与此类似的帖子,但我没有看到这种关系。有人可以告诉我如何解决吗? using System; using System.Collections.Generic; namespace Example { public class ViewContext { ViewContext() { } } public interface IModel { } public interface IView<T> where T : IModel { ViewContext ViewContext { get; set; } } public class SomeModel : IModel { public SomeModel() { } public int ID { …
211 c#  generics 

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.