Tag: 比较

c#中的位图(签名)比较

我们有一个有趣的项目,要求我们比较两个签名的两个黑白位图,并说明它们是否是同一个人签名。 由于这只是两个加载的位图而不是从平板电脑捕获的数据,因此该方法将与正常的签名识别略有不同。 我认为这需要以下步骤 将位图裁剪为仅签名 尝试计算某种旋转来对齐它们 resize以使裁剪/旋转位图相同 分析内部的签名(可能通过分解为网格) 有没有人对这个项目有任何想法? 如何最好地进行轮换,比较等? 看到类似的东西?

C#比较速记

我有这个代码: if (y == a && y == b && y == c && y == d …) { … } 是否有某种forms的速记,以便我可以像这样重写它? if(y == (a && b && c && d …)) { … } function应该完全相同。 我只是在找一些看起来不那么混乱的东西。 编辑很抱歉没有澄清,所有变量都是整数。 我正在寻找一种更短的方法来确保a , b , c , d ,……都等于y 。

IndexOf与自定义StringComparer

为什么String.IndexOf(String, StringComparison)需要StringComparison而不允许更通用的StringComparer ,甚至不允许IComparer或IEqualityComparer ? 我创建了一个自定义的StringComparer来与几个字典一起使用,我想在项目的其他部分使用它但是如果没有大量的扩展方法,我就找不到一个好方法,如果那些甚至可以工作的话。 这是我制作的比较器。 它大致基于此建议: 使用字符串实现自定义IComparer 另请注意,ModifyString是WIP。 我期望在那里添加更多东西,基于我正在比较的输入。 我也知道它很贵,但我只是在寻找解决方案ATM,而不是性能。 public class CustomComparer : StringComparer { public override int Compare(string x, string y) { return StringComparer.Ordinal.Compare(ModifyString(x), ModifyString(y)); } public override bool Equals(string x, string y) { if (ModifyString(x).Equals(ModifyString(y))) return true; else return false; } public override int GetHashCode(string obj) { if (obj == null) […]

为什么List 的SequenceEqual返回false?

嗨,当我遇到这样的情况时,我遇到了一些有关sequenceEqual的问题: Sentence s1 = new Sentence { Text = “Hi”, Order = 1 }; Sentence s2 = new Sentence { Text = “Hello”, Order = 2 }; List list1 = new List { s1, s2 }; List list2 = new List { s1, s2 }; 这很好用 bool equal = list1.SequenceEqual(list2); 并返回true ; 但是当我有一些返回List ,例如: public […]

LINQ:通过使它们可转换/可比较,对不同类型的集合使用.Except()吗?

给定两个不同类型的列表,是否可以使这些类型在彼此之间可转换或相互比较(例如使用TypeConverter或类似),以便LINQ查询可以比较它们? 我已经在SO上看过其他类似的问题,但没有任何指出使类型可以在彼此之间进行转换以解决问题。 收集类型: public class Data { public int ID { get; set; } } public class ViewModel { private Data _data; public ViewModel(Data data) { _data = data; } } 所需用法: public void DoMerge(ObservableCollection destination, IEnumerable data) { // 1. Find items in data that don’t already exist in destination var newData = destination.Except(data); […]

如何找到两个图像之间的差异矩形

我有两个相同大小的图像。 找到它们不同的矩形的最佳方法是什么。 显然,我可以在不同方向上浏览图像4次,但我想知道是否有更简单的方法。 例: 第一张图片http://sofzh.miximages.com/c%23/2cg0u2h.png 第二张图片http://sofzh.miximages.com/c%23/14l0y13.png 差异http://sofzh.miximages.com/c%23/5agshd.png

使用StartsWith将值与字符串数组进行比较

我有一个数组: string[] exceptions = new string[] { “one”, two”, “one_1”, “three” }; ..我希望能够说: var result = from c in myCollection where not c.Property[3].Value.StartWith(exceptions) select c; 所以我希望过滤myCollection只显示那些Property[3].Value不会在例外数组中StartWith一个值的记录。 我知道StartsWith没有采集集合所以我不确定这是否可以通过LINQ实现。 这在LINQ中是否可行?! 或者我是否试图将我的问题转变为LINQ解决方案? 编辑:我应该说,包含不是一个选项,因为我只想排除其属性以exception字符串开头的元素。

自定义排序(三个领域的IComparer)

我有一个人类,有三个字段,标题,名称,性别,我想为它创建一个自定义排序,首先按标题排序,然后按名称排序,然后按性别升序排序: public class SortPerson : IComparer { public int Compare(object x, object y) { (…) } } 我知道如何只为一个变量进行比较而不是这样做:但我如何才能继续进行三次? public class SortPerson : IComparer { int IComparer.Compare(object a, object b) { Person p1=(Person)a; Person p2=(Person)b; if (p1.Title > p2.Title) return 1; if (p1.Title < p2.Title) return -1; else return 0; } } 非常感谢,

比较代表行动

随意质疑我的理智。 我需要确定Action vs Action是否是原始实例。 我所拥有的是一个带有类变量的类protected Action MessageCallback = null; 当我的abstract class Message是通过抽象方法创建的时候,我强制“他们”初始化MessageCallBack。 此MessageCallback被添加到IList<Action> 。 此列表中定义的每个操作可以不同。 现在,我想要做的是从列表中删除一个特定的操作,但我没有尝试比较它。 以下是我尝试过的最后一次设置的示例: public void Unsubscribe(Action messageCallback) { var messageType = typeof(TMessage); var callbackTypes = messageReceivedCallbacks .Keys .Where(k => k.IsAssignableFrom(messageType)); lock (messageReceivedCallbacks) { foreach (var callbackType in callbackTypes) { messageReceivedCallbacks[callbackType].Remove(new Action(m => messageCallback((TMessage)m))); } } } 我明白我想要做的事情可能是不可能的,但一般来说,我只是做一些不正当的事情,或者缺乏适当的知识,就像我想的那样。 提前感谢您提供的任何帮助。 尝试以下一些方法后更新: 比较他们一直在失败。 以下3项建议都不起作用。 […]

文本比较/差异算法

是否有ac#library / algorithm来比较2个文本并显示它们的不同之处?