Tag: 包含

修改List.Contains行为

我有一个List , class MyObj : IComparable 。 我根据IComparable接口在MyObj类中编写了CompareTo方法,但是当我使用List.Contains(myObjInstance)时,它应该为true时返回false 。 我不确定我是否理解如何在调用然后Contains函数时确保List使用我的自定义比较方法。 这是我的compareTo实现: #region IComparable Members public int CompareTo(object obj) { MyObj myObj = (MyObj)obj; return String.Compare(this.Symbol, myObj.Symbol, true); } #endregion 请注意,Symbol属性是一个字符串。 为了澄清我在compareTo方法中设置了一个停止点,它甚至没有进入那里。 有人试过吗? 谢谢。

ICollection 。包含自定义类型

如果我有一个(引用 – 它有关系吗?)类型MyType ,它不会覆盖Equals方法,在确定ICollection 是否包含给定的类型实例时将使用什么启发式? 使用我自己的启发式方法的最佳方法是什么(例如,检查Id属性值是否相等)?

如何在Entity Framework Core中传递具有多个级别的lambda’include’?

我有一个存储库,可以获取’include’的lambda表达式。 public TEntity FirstOrDefault(Expression<Func> predicate, params Expression<Func>[] includePaths) { return Context.Set().Includes(includePaths).FirstOrDefault(predicate); } 在以前的EF版本中,我在服务层使用它,例如: var plan = _unitOfWork.PlanRepository .FirstOrDefault( p => p.Id == id, include => include.PlanSolutions.Select(ps => ps.Solution) ); 其中’PlanSolutions’是一个集合,’Solution’是一个嵌套在’PlanSolution’中的属性。 但现在这段代码出错了: InvalidOperationException:属性表达式’include => {来自[include]中的PlanSolutions ps。.PlanSolutions select [ps] .Solution}’无效。 表达式应表示属性访问:’t => t.MyProperty’。 有关包含相关数据的详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=746393 。 现在似乎我不能使用’Select’方法获得多个级别包含,但我也不能使用Microsoft建议的’ThenInclude’方法,因为查询本身位于存储库内部,服务没有访问。 有没有办法治愈它?

List .Contains()如何查找匹配项?

我有一个汽车对象列表 List cars = GetMyListOfCars(); 我想知道列车中是否有车 if (cars.Contains(myCar)) { } Contains用什么来确定myCar是否在列表中。 它是否在我的汽车对象上执行“ToString()”。 它是否使用Equals()方法,gethashcode()? 我看到我可以通过我自己的IEqualityComparer来强制我自己的实现,但只是想了解它默认情况下的作用。

确定字符串中的所有字符是否相同

我有一种情况需要尝试过滤掉假的SSN号码。 从我到目前为止看到的它们是假的它们都是相同的数字或123456789.我可以过滤掉最后一个,但是有一个简单的方法来确定所有的字符是否相同?

String包含另外两个字符串

如果字符串包含2个或更多单词,是否可以找到包含函数? 这就是我想要做的: string d = “You hit someone for 50 damage”; string a = “damage”; string b = “someone”; string c = “you”; if(d.Contains(b + a)) { Console.WriteLine(” ” + d); Console.ReadLine(); } 当我运行它时,控制台窗口只是快速关闭而不显示任何内容。 另一个问题是:如果我想要添加多少伤害,那么最简单的方法是获取该数字并将其输入TryParse ?

C#中的字符串列表中的高性能“包含”搜索

我有一个大约的列表。 500,000个字符串,每个约。 100个字符长。 给定搜索词,我想识别列表中包含搜索词的所有字符串。 目前,我使用Select方法(“MATCH%term%”)使用普通旧数据集执行此操作。 这在我的笔记本电脑上大约需要600毫秒。 我想让它更快,也许100-200ms。 什么是推荐的方法? 性能至关重要,因此我可以在必要时(在合理范围内)交换内存占用以获得更好的性能 一旦初始化,字符串列表就不会改变,因此计算哈希值也是一种选择。 有没有人有推荐,哪种C#数据结构最适合这项任务?