比较C#列表中的日期时间元素

3

我有一组datetime值,我想将每个项目与所有项目进行比较。

var dateList = new List<DateTime>();

基本上我想要检查所有的项目是否相等。

我认为可以使用DateTime.Compare,但我不确定如何遍历每个元素并进行比较。


你期望得到什么样的结果? - Artiom
4个回答

8
基本上我想检查所有的项目是否相等。 不需要使用DateTime.Compare。只需检查即可。
dateList.Distinct().Count();

如果它等于1,那么它们是相等的,但如果它大于1,则不相等。

@log 不错的修复,但如果作者真的是指0呢? :) - Shadow The Spring Wizard

3
var notAllEqual = dateList.Any(x => x != dateList.First())

2
bool b = dateList.Skip(1).All(x=>x.Equals(dateList[0]));

2

非Linq方法:

    bool AreAllDatesEqual(List<DateTime> dateList)
    {
        var first = dateList[0];
        for (int i = 1; i < dateList.Count; i++)
        {
            if (first != dateList[i])
                return false;
        }

        return true;
    }

这个比较只是将一个项目与所有项目进行比较。操作员希望将每个项目与所有项目进行比较。 - Renatas M.
@Reniuz - 然而,最终结果是相同的!你可以自己检查一下 :-) - logicnp
1
+1 这基本上与L.B的答案相同,只是没有使用Linq。 - Tim Schmelter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接