首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较C#中数组的值

比较C#中数组的值
EN

Stack Overflow用户
提问于 2011-06-15 16:09:14
回答 8查看 520关注 0票数 1

我有一个布尔数组,如下所示

代码语言:javascript
复制
bool[] responses = new bool[] {true, false, true};

和两个如下所示的类:

代码语言:javascript
复制
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中,以便与响应进行比较。

这是我到目前为止所知道的:

代码语言:javascript
复制
var equal = responses.Select(bool.Parse).SequenceEqual( xxx );

我需要做的是比较以下内容:

代码语言:javascript
复制
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匹配

EN

Stack Overflow用户

发布于 2011-06-15 16:35:03

没有比这更简单的了:

代码语言:javascript
复制
  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#。

实际上,它突出了规范中缺失的一个方面;如果列表的长度不同,应该发生什么?

票数 0
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6354813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档