0

我在 c# 中有一个 List<> 包含对象的数量,例如 100。我需要连续选择一些对象而不重复。例如,我选择对象 4,然后随机选择随机数量的连续对象(对象 5 和 6)。当我想选择另一个集合时,它不应该包含对象 4、5 和 6。如果我从 List 中删除这些对象,那么有时我会收到无用的对象 2、3、7、8。换句话说,我需要主列表中的一些子列表,没有重复的对象,并且与主列表的顺序相同。我想知道是否有人帮我解决这个算法。

4

1 回答 1

2

您可以将对象存储在 Dictionary 中,这样您就可以为每个对象保留额外信息,在您的情况下是一个布尔值,告诉您您的对象是否已被选中,如下所示:

//initializing the dictionary, any item has been selecte
Dictionary<object,bool> dic = list.ToDictionary(e => e, e => false);

并且每当您选择一个项目时,您都会将布尔值更改为 true :

dic[selectedObject] = true;

当您尝试从字典中选择一个新项目时,您只需跳过具有true值的键/值对。

于 2013-01-29T16:52:21.443 回答