c#中的自定义列表

时间:2012-09-28 08:39:40

标签: c#

我需要创建一个包含类似

的列表
public List<int,bool> PostionAndChecked
{ get; set; }

然后是一个列表

public List<int> PageNumber
        { get; set; }

那么应该发生的事情是PageNumber列表中的每个页码都应该链接到PostionAndChecked列表

我该怎么做?

3 个答案:

答案 0 :(得分:3)

List是一种类型的列表,而不是两种类型。您可以使用Tuple<int, bool>,也可以使用Dictionary<int, bool>

虽然,由于您只需要为每个号码保留一点,但您可能会对使用Set<int>感到满意,只会添加true个数字。

答案 1 :(得分:2)

使用Dictionary<int, bool>,这将存储Keyint)和相应的Valuebool),而无需自行存储索引。所以对于上面你会有

public Dictionary<int, bool> lookup { get; set; } 
...
lookup = new Dictionary<int, bool>();

向此添加新条目,如

lookup.Add(0, true);
lookup.Add(1, false);
...

然后,您可以根据相关索引引用Boolean值,如下所示

bool b = lookup[someIndex];

有关此calss的更多信息,请参阅here

我希望这会有所帮助。

答案 2 :(得分:2)

以下内容仅适用于插图,特别是如果int在您要检查的页面列表中是唯一的。希望你应该能够看到如何根据你的目的改变它。

我不清楚为什么你需要另一个存储页码的列表,也许你可以解释为什么你认为你需要它?

public class PageChecker
{
    public IDictionary<int, bool> PositionAndChecked { get; set; }

    public PageChecker()
    {
        SetUpPages();
    }

    private void SetUpPages()
    {
        PositionAndChecked = new Dictionary<int, bool>();
        var pageCount = 10;
        for (int i = 0; i < pageCount; i++)
        {
            PositionAndChecked.Add(i, false);
        }
    }

    public void CheckPage(int pageNo)
    {
        PositionAndChecked[pageNo] = true;
    }
}