gpt4 book ai didi

c# - 将列表的最后一个元素与之前的元素进行比较的简化语法?

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:33 25 4
gpt4 key购买 nike

List<DateTime> list = new List<DateTime>();

目前我有以下语法:

if(list[list.Count - 1] != list.[list.Count - 2])
{
//do something
}

这是一个令人难以置信的长语法(在我的真实程序中,列表名称也长得多)。该列表也可通过静态方法获得,该方法甚至大大增加了此语法的宽度。

我怎样才能把这个语法写得更短、更易读?

谢谢!

最佳答案

创建一个静态函数,这样你就可以在任何地方使用它而无需创建对象

if(myclass.PenultimateCondition(mylist))
{
//do something
}

public class myclass
{
public static bool PenultimateCondition(List<Datetime> list)
{
return list[list.Count - 1] == list.[list.Count - 2];
}
}

制作日期时间扩展方法。在那种情况下你甚至不必写类名

public class ExtensionMethod
{
public static bool PenultimateCondition(this IEnumerable<DateTime> value)
{
Datetime[] dt = value.ToArray();
return dt[dt.Length-2] == dt[dt.Length-1];
}
}

并像使用它一样

if(myList.PenultimateCondition())
{
//do something
}

制作通用扩展方法。在这种情况下,您可以将它用于任何数据类型

public class ExtensionMethod
{
public static bool PenultimateCondition<T>(this IEnumerable<T> value)
{
T[] dt = value.ToArray();
return Equals(dt[dt.Length-2], dt[dt.Length-1]);
}
}

并像使用它一样

if(myList.PenultimateCondition())
{
//do something
}

关于c# - 将列表的最后一个元素与之前的元素进行比较的简化语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com