草庐IT

算法复杂度

全部标签

c# - ListBoxItem 中的复杂 UI

在WPF中,我可以将任何UI添加到ListBoxItems通过提供ListBox与ItemTemplate:结果是:有没有办法在Windows窗体中实现相同的目标?编辑:1-有没有办法在Windows窗体中实现相同的目标,同时保持separationofconcernsView之间和ApplicationLogic以这样的方式,如果我以后想完全重新定义View,我不必重构整个应用程序?2-winforms是否以这样一种方式支持数据绑定(bind),即我的每个ListBoxItems可以绑定(bind)到一个复杂的Entity,最终包括从模型数据到UI数据并返回的中间类型转换,这样我就不

c# - 为什么存储库模式在 Entity Framework 中被广泛使用,好像它很复杂?

我正在创建一个演示项目,其中包含使用存储库模式和依赖项注入(inject)的crud操作。这是我的结构:方法1(非常流行,被许多开发人员使用)我的存储库界面:publicpartialinterfaceIRepository{voidInsert(Tentity);}我的服务层:publicpartialinterfaceIEmployeeService{voidInsertCategory(EmployeeMasteremployeeMaster);}我的类将实现该接口(interface)(服务):publicpartialclassEmployeeService:IEmploye

c# - List<string> 复杂排序

我有一个List尺码,例如XS、S、M、L、XL、XXL、UK10、UK12等我想要的是强制顺序为上面的顺序,不管列表中项目的顺序如何,我想我需要一个IComparable运算符但不确定。理想情况下,我希望有另一个具有正确顺序的列表,它可以引用它在列表中的“位置”并自行重新排序,如果它不存在,它将默认为A-Z 最佳答案 按照您希望的顺序创建一个尺码数组,然后根据尺码在该数组中的位置对衬衫进行排序:string[]sizes=new[]{"XS","S","M","L","XL","XXL","UK10","UK12"};varshi

c# - 快速算法找到 x 最接近平面上给定点的点

我想找到一种快速算法,以便找到与平面上给定点最近的x个点。我们实际上处理的点并不多(在1,000到100,000之间),但我需要这些点中的每一个点的x个最近点。(其中x通常介于5和20之间。)我需要用C#编写它。关于用例的更多上下文:这些点是map上的坐标。(我知道,这意味着我们并不是在谈论一个平面,但我希望避免处理投影问题。)在端点附近有很多其他点应该显示为红色,没有太多的点靠近它们的点应显示为绿色。在这两个极端之间,点在颜色渐变上。 最佳答案 您需要的是适合组织平面中点的数据结构。K-D-Tree经常用于这种情况。参见k-dtr

c# - 6字符短哈希算法

我的目标是为长度为42个不区分大小写的字母数字字符的字符串生成一个6个字符的短哈希字符串(可能包含字符[A-Z][a-z][0-9])。唯一性是关键要求。安全性或性能并不是那么重要。是否有特定的算法可以给出此结果,或者我应该坚持截断MD5哈希或SHA-1哈希(Likeinthisquestion)?如果是,发生碰撞的概率是多少? 最佳答案 最好的选择是截断众所周知的散列函数(MD5或SHA系列),因为这些算法具有统计上良好的散列值均匀分布(并且还使用完整的散列,而不仅仅是6个字符)。现在一些碰撞概率的计算-Numberoflette

c# - 避免从 C# 代码在 MSSQL Server 上进行 SQL 注入(inject)的算法?

在C#.net平台上避免SQL注入(inject)的最佳方法是什么。如果有的话,请发布C#实现。 最佳答案 不需要算法-只是不使用字符串连接来构建SQL语句。请改用SqlCommand.Parameters集合。这会执行所有必要的值转义(例如将'替换为'')并确保该命令是安全的,因为其他人(即Microsoft)已经完成了所有测试.例如调用存储过程:using(varconnection=newSqlConnection("..."))using(varcommand=newSqlCommand("MySprocName",conn

c# - 如何避免复杂屏幕上的数据绑定(bind)/事件 hell ?

这更像是一个架构/设计问题。我过去遇到过一些用WPF/WindowsForms等编写的项目,这些项目具有包含很多字段的复杂屏幕,并且这些字段相互连接(它们的值相互依赖,涉及一些逻辑).这些项目是我在实现后接手的,我发现很多事件/数据绑定(bind)hell-我的意思是因为所有这些字段都依赖于其他人,所以他们已经实现了INotifyPropertyChanged并且其他领域正在结果修改。这会导致相同的字段在屏幕加载时被更新5-6次,并且填充字段的顺序会导致可怕的错误。(例如,日期设置在工作类型之前,而不是在工作类型之后,所以我最终得到了不同的工作费用.)更糟糕的是,一些hack是在UI事

c# - 简单词差异算法

我目前正在寻找一种简单且轻量级的算法来比较两个简单的字符串。例如,如果我们采用这两个字符串:“敏捷的棕色狐狸跳过懒惰的狗”“聪明的棕色狐狸战胜了疯狗”它应该告诉我第二个单词的两个首字母不同,等等。现在我有一个比较单词的非常简单的算法://////Makeadiffbetweentwostringsandreturnswordsindices////////////publicstaticListDiff(stringa,stringb){Listindices=newList();string[]asplit=a.Split('');string[]bsplit=b.Split('')

c# - 优化此 C# 算法

这是一道算法题,我有解法但是有性能问题。QuestionDescriptionTherearenvariablesandmrequirements.Requirementsarerepresentedas(xInputFormat:Firstlineoftheinputcontainstwointegersnandm.Thenfollowingmlineseachcontaining2space-seperatedintegersxandy,whichmeansarequirement(xOutputFormat:Outputtheanswerinoneline.Constraints

c# - 遗传算法中的锦标赛评估

现在,每个遗传C#库(A.Forge、遗传算法框架、GeneticSharp)似乎只评估单个Chromosome,然后使用各种选择方法之一来创建新一代.由于我的问题涉及两个AI相互对抗,因此单独评估它们的适应性有点困难。虽然游戏足够简单,可以创建一些表面障碍(AI不直接交互,但障碍会发送给其他游戏),这会让我获得一些抽象的适应性,但这并不是“真正的”交易.这些库似乎也没有提供我可以实现这种评估方法的另一个接口(interface)。是否有其他框架允许这样做,还是我需要从头开始? 最佳答案 每个遗传算法库都应该有一些方法供您定义适应度