我正在编写一段代码,该代码将存储和排序person对象的集合,这些对象具有以下属性:名字、姓氏和Id。
我希望使用一个泛型集合来迭代/存储和排序这些objs。我一直倾向于使用SortedDictionary
类来实现这一目标。我知道还有其他选项,即SortedList
或Dictionary
(也知道Dictionary
不会排序,至少不会单独排序)。
理想的键是Id
(类型为String
),但我不能保证它们都是唯一的,而且数据是从DB检索的,因此也有可能发生人为错误( id不是表的pk )。
至于值,我希望存储对象本身的数组/列表。因此,当我从集合中提取一个键时,我将得到那个人的完整引用(name + id)。
现在,我还希望根据regex匹配(姓氏和名字副本)在这个列表中对objs进行分组,而在我缺乏经验的头脑中,第一件事就是遍历集合(两个for循环,迭代两个集合,这将随着数据的增加而增加)。除了理想的集合是什么,我也想知道是否有其他有效的方法分组这个陷阱,以一种有效的方式。
发布于 2015-02-25 09:30:59
您真正想要的是使用某种形式的LINQ (而不是LINQ,因为它是DAL和LINQ的私生子)。
例如,可以将信息存储在XML中,并使用LINQ。这些信息可以作为实体收集,并使用LINQ实体。您还可以通过使用IEnumerable的任何集合使用LINQ对象。一个简单的列表就行了。
这样做,您不必担心创建某种类型的派生密钥来查询对象组或对其进行排序。您可以简单地拉动对象集合,然后切片,骰子,过滤器等,无论你想要什么。
而且,是的,您可以将Regex与LINQ:https://msdn.microsoft.com/en-us/library/bb882639.aspx结合起来。
https://stackoverflow.com/questions/28725410
复制