匹配lisboxes项目并创建结果

时间:2017-10-19 14:06:56

标签: c# comparison listboxitem

我正在用c#创建一个考试系统。我正在创建结果,我在listbox1中有答案并且在另一个listbox2中有正确的答案,我的问题是应该比较列表框中的值,并且应该在其基础上生成结果。如果一半的值匹配,则学生通过,否则失败。 我的代码如下,但它不起作用。

for(int intCount = 0; intCount < listBoxSanswers.Items.Count;intCount++)
{
    for (int intSubCount = 0; intSubCount < listBoxActAnswers.Items.Count; intSubCount++)
    {
        if (listBoxActAnswers.Items[intCount].ToString() == listBoxActAnswers.Items[intSubCount].ToString())
        {     
            listBox3.Items.Add(listBoxActAnswers.Items[intCount].ToString());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果您想使用您的方法,则必须将两个列表中的一个更改为listBoxSanswers

如果你想要一个较短的方式,没有循环,你可以尝试这一行:

listBox3.Items.AddRange(listBoxActAnswers.Items.Cast<string>().ToList().Intersect(listBoxSanswers.Items.Cast<string>().ToList()).ToArray());

修改 哦好的,所以你有一个DataTable作为DataSource。 你可以这样做:

listBox3.Items.AddRange(listBoxActAnswers.Items.Cast<DataRowView>().Select(r => r[0]).ToList().Intersect(listBoxSanswers.Items.Cast<DataRowView>().Select(r => r[0]).ToList()).ToArray());

也许您应该将Select(r => r[0])调整到您的DisplayMember右侧列。