其實,一般來講,遍歷鏈表,就是要遍歷鏈表的所有的節點,同時打印節點的值。但是,用foreach方法遍歷鏈表的時候,遍歷的直接是節點的值,而不是節點。這其實是c#裏面做的不順人思路的一面。語言畢竟是人開發的,只要是人,就會有各種的缺陷,會犯錯誤。雖然C#的開發者,我們認爲他不是一般的智者。但是也沒必要完全地盲目崇拜他,盡信他。
以下面的代碼塊爲示例:
/*
* Created by SharpDevelop.
* User: Administrator
* Date: 2016/11/15
* Time: 21:13
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
namespace LinkedListDemo
{
class Program {
public static void Main(string[] args)
{
LinkedList<char> myLink = new LinkedList<char>();
string str;
str = "abcdefghijkl";
foreach(char c in str)
myLink.AddLast(c);
foreach ( char mychar in myLink )//用數據類型遍歷的,而不是用節點類型遍歷的
Console.Write(mychar);
Console.WriteLine();
myLink.Remove('c');
foreach (char mychar in myLink)//用數據類型遍歷的,而不是用節點類型遍歷的
Console.Write(mychar);
Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}