我有一个名为AxiomSubset
6列的C#列表,其中有几行数据,我想检查列表中特定列的所有值是否相等,如果它们相等则应返回true并转到下一列列并检查它们的相等性等.
例如,我在列表中有以下数据行
CC Mon str stg rate units
HP 15-Mar 4.0800 4
HP 15-Feb 4.0800 4
HP 15-Jan 4.0800 4
LN 15-Mar 3.25 Put 0.0500 50
LN 15-Feb 3.25 Put 0.0500 50
LN 15-Jan 3.25 Put 0.0500 50
LN 15-Mar 3.50 Put 0.1000 50
LN 15-Feb 3.50 Put 0.1000 50
LN 15-Jan 3.50 Put 0.1000 50
Run Code Online (Sandbox Code Playgroud)
在上面的数据中检查列的相等性时,CC
它应该返回false,因为它们都不相等
我尝试按如下方式进行操作,将一行与前一行进行比较,显然没有给出预期的结果
for (int i = 0; i < AxiomSubSet.Count; i++)
{
if (AxiomSubSet[i].CC.ToString() == AxiomSubSet[i + 1].CC.ToString())
{
result = true;
if (AxiomSubSet[i].term.ToString() == AxiomSubSet[i + 1].ToString())
{
//So On
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码一次比较两个值,如果它们相等则返回true而不考虑其他不需要的值.
有没有更好的方法呢?
小智 5
你可以为每一列做这样的事情.
if((AxiomSubSet.Select(x => x.CC).Distinct().ToList()).Count > 1)
Run Code Online (Sandbox Code Playgroud)