用C#链接bool

fea*_*net 2 .net c#

int a, b, c, d, e;
a = b = c = d = e = 1;

if ((a==b) && (b==c) && (c==d) && (d==e))
{
    Console.WriteLine("that syntax is horrible");
}
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方法来测试多个相等如上?

也许是一个AreEqual(params obj[])什么的?我有一个谷歌,但没有找到任何东西.

Avi*_* P. 10

可能的实施AreEqual(params object[] objects):

(根据Jon Skeet的建议,这是一个通用版本)

bool AreEqual<T>(params T[] objects)
{
    if (objects.Length <= 1) return true;
    return objects.Skip(1).All(x => x.Equals(objects[0]));
}
Run Code Online (Sandbox Code Playgroud)

Skip(1)也不是绝对必要的.

  • 是的,linq是要走的路:-) (2认同)