我有一个布尔数组,如下所示
bool[] responses = new bool[] {true, false, true};和两个如下所示的类:
public class Person {
public IList<PersonDetail> PersonDetails
}
public class PersonDetail {
public bool Correct { get; set; }
}
PersonDetails
>> PersonDetail[0].correct = true
>> PersonDetail[1].correct = true
>> PersonDetail[2].correct = false有没有一种简单的方法可以比较它们,看看它们的真/假是否相等?我尝试使用c# .SequenceEqual,但我不知道如何将PersonDetail类中的数据放入序列xxx中,以便与响应进行比较。
这是我到目前为止所知道的:
var equal = responses.Select(bool.Parse).SequenceEqual( xxx );我需要做的是比较以下内容:
responses[0] == PersonDetail[0].correct and
responses[1] == PersonDetail[1].correct and
responses[2] == PersonDetail[2].correct 因此,responses[x]中的true应该与PersonDetail[x]中的true匹配,而responses[x]中的false应该与PersonDetail[x]中的false匹配
发布于 2011-06-15 16:35:03
没有比这更简单的了:
if (person.PersonDetails.Count != responses.Length)
throw new ArgumentOutOfRangeException("Arrays are different lengths");
bool result = true;
for (int i = 0; i < person.PersonDetails.Count; i++)
{
if (person.PersonDetails[i].Correct != responses[i])
{
result = false;
break;
}
}地球上的每个程序员都将能够阅读它,即使他们从未见过c#。
实际上,它突出了规范中缺失的一个方面;如果列表的长度不同,应该发生什么?
https://stackoverflow.com/questions/6354813
复制相似问题