草庐IT

美团$方案$实践

全部标签

c# - 列表上的 IndexOf 太慢。更快的解决方案?

我有一个通用列表,它必须是一个保留顺序,所以我可以检索列表中对象的索引。问题是IndexOf太慢了。如果我将IndexOf注释掉,代码将尽可能快地运行。有没有更好的方法,例如用于c#的保留有序哈希列表?谢谢,内特编辑-添加/插入项目的顺序是它需要的顺序。无需对它们进行排序。此列表也有可能经常更新、添加、删除、插入。基本上我需要将对象转换为索引,因为它们在网格控件中表示,因此我可以根据索引在网格控件上执行操作。 最佳答案 如果它没有排序,但顺序需要保留,那么你可以有一个单独的Dictionary其中将包含每个元素的索引。如果您想要一个

c# - 如何在代码中获取 C# (VS 2008) 中的解决方案目录?

这里遇到了一个恼人的问题。我有一个通过SVN工作的NHibernate/Forms应用程序。我制作了一些自己的控件,但是当我将它们(或查看一些我已经拖放过的表单编辑器)拖放到我的其他一些控件上时,VisualStudio决定它需要执行我编写的一些代码,包括寻找hibernate.cfg.xml的部分。我不知道这是为什么,但是(有时!)当它在我的表单加载或拖放过程中执行代码时,它会将当前目录切换到C:\programfiles\vs9.0\common7\ide,然后nhibernate抛出找不到hibernate.cfg.xml的异常,因为我正在相对路径中搜索它。现在,我不想硬编码hi

c# - 重用 SqlConnection 的最佳实践

我有Java经验,正尝试从C#入手。我读过SqlConnectionSqlCommandSqlDataReaderIDisposable我可以理解,连接到数据库的最佳做法是将SqlConnection、SqlCommand和SqlDataReader包装在它们自己的usingblock。但在Java中,我们使用将连接封装到工厂方法中,只创建一次,然后将其重新用于所有查询,甚至是多线程查询。仅为每个查询创建语句和结果集并尽快关闭。为每个查询创建一个新的SqlConnection是不是有点矫枉过正?不能重复使用吗? 最佳答案 创建类Sq

c# - 使用 C# 获取解决方案文件的父文件夹的路径

我是C#的初学者,我有一个正在从中读取文件的文件夹。我想读取位于解决方案文件的父文件夹中的文件。我该怎么做?stringpath="";StreamReadersr=newStreamReader(path);因此,如果我的文件XXX.sln位于C:\X0\A\XXX\中,则读取.txt中的文件C:\X0\A\。 最佳答案 您可能会喜欢这个更通用的解决方案,它依赖于通过扫描当前目录或选定目录的所有父目录来找到解决方案*.sln文件,同时涵盖找不到解决方案目录的情况!publicstaticclassVisualStudioProvi

c# - 调试的最佳实践

我最近使用VisualStudio和WinDbg对托管应用程序进行了大量调试,因此我经常被要求协助同事进行调试。有好几次,我发现人们只是在各处插入断点并希望得到最好的结果。根据我的经验,这很少是有用的技术。我的方法是这样的。重现问题。理想情况下尽可能减少输入。检查出了什么问题,并列出错误可能出在哪里的理论。通过调试代码的特定区域,一次检查一种理论。必要时重复步骤。对于复杂的调试问题,我经常与同事合作。对于WinDbg,这尤其有用。还有其他有用的调试技巧或最佳实践吗? 最佳答案 如果我可以给每个人关于调试的一个提示,那就是再次破坏它。

C# Auto Property - 这是 'pattern' 最佳实践吗?

我似乎在我的代码中经常使用这种模式,我知道它不再是一个简单的自动属性:publicIListBCSFilters{get;set;}我一直使用的代码是这样的:privateIList_BCSFilters;//////GetsorsetstheBCSfilters.//////TheBCSfilters.publicIListBCSFilters{get{if(_BCSFilters==null){_BCSFilters=newList();}return_BCSFilters;}set{_BCSFilters=value;}}这样我就可以只执行MainClass.BCSFilters

c# - 客户端身份验证方案 'Anonymous' 禁止 HTTP 请求。远程服务器返回错误 : (403) Forbidden

我正在尝试创建一个安全的网络服务。这里是合约和服务实现[ServiceContract()]publicinterfaceICalculatorService{[OperationContract()]intAdd(intx,inty);}[ServiceBehavior(IncludeExceptionDetailInFaults=true)]publicclassCalculatorService:ICalculatorService{publicintAdd(intx,inty){returnx+y;}}我这里有服务代码varb=newWSHttpBinding(Security

c# - NetFramework 应用程序在同一解决方案中引用 NetFramework 库,在另一个解决方案中引用 NetStandard 库。 : could not load file or assembly

关于从.NETFramework项目中引用.NETStandard类库的问题有很多类似的问题,其中netstandard库中的NuGet包依赖项不会流向netframework应用程序,并且Couldnotloadfileorassembly运行时发生错误:存在许多来源,例如下面的来源,表明可以通过添加对netframework项目缺少的依赖项来解决这个问题:https://stackoverflow.com/a/46015829/2704659然而,这是不利的,因为我不想让项目必须携带它们不应该需要的直接引用;依赖关系应该自然流动,以便将来添加/删除的依赖关系正常工作。其他来源表明可

c# - 存储 key 的最佳实践

我有一个asp.net应用程序,我想存储一个机器范围的加密key,我将在使用DPAPI加密系统时在应用程序中使用它。存储key的最佳做法是什么-我应该将它存储在哪里?谢谢。 最佳答案 将任何key以明文形式存储在任何非volatile和本质上不安全的介质(例如硬盘)中是非常不安全的。在此类介质上,您应该只存储key的签名加密版本,并且对加密key的写入访问应该受到保护。手头的实际工作是对安全需求建模,确定key管理策略和实现。 关于c#-存储key的最佳实践,我们在StackOverfl

Kafka rebalance 的几种原因与解决方案

网上有很多文章讲述Kafkarebalance的原理,本文是列举常见的几种rebalance场景:如果一个consumer刚启动,则会向broker发送JoinGroup请求,加入group,被分配一个memberid,触发一次rebalance。如果一个consumer终止,不再运行。则等到Heartbeat超时,broker会认为该consumer下线,触发一次rebalance。上述consumer启动、终止的情况通常不频繁,可以容忍它触发rebalance。但有的情况下,consumer会频繁启动、终止,比如被k8sHPA改变consumer数量。解决方案:额外开发一个应用,称为dis