如何先获取对 最后一项* 的 引用 ,然后在foreach循环中将其用于比较呢?
我并不是说您应该这样做,因为我自己会使用KlauseMeier提到的基于索引的循环
。抱歉,我不了解Ruby,因此以下示例在C#中!希望你不要介意:-) ***
string lastItem = list[list.Count - 1];foreach (string item in list) { if (item != lastItem) Console.WriteLine("Looping: " + item); else Console.Writeline("Lastone: " + item);}我修改了以下代码,以按引用而非值进行比较(只能使用引用类型而不是值类型)。以下代码应支持包含相同字符串(但不是相同字符串对象)的多个对象,因为MattChurcy的示例未指定字符串必须是不同的,并且我使用LINQ
Last方法而不是计算索引。
string lastItem = list.Last();foreach (string item in list) { if (!object.ReferenceEquals(item, lastItem)) Console.WriteLine("Looping: " + item); else Console.WriteLine("Lastone: " + item);}以上代码的局限性。(1)它仅适用于字符串或引用类型,不适用于值类型。(2)同一对象只能在列表中出现一次。您可以具有包含相同内容的不同对象。文字字符串不能重复使用,因为C#不会为内容相同的字符串创建唯一的对象。
而且我也不傻。我知道基于索引的循环是一个可以使用的循环。我第一次发布初始答案时已经说过了。我在所提供的最好的答案我能 方面
的问题。我太累了,无法继续解释这一点,所以你们所有人都可以投票删除我的答案。如果这个消失了,我会很高兴。谢谢



