C \ # 링크 조작

4105 단어 C#링크 조작
링크 작업 에 대해 C \ # 에서 마이크로소프트 는 링크 드 List 의 데이터 구 조 를 제 공 했 고 이런 방법 을 통 해 링크 작업 을 실현 할 수 있 습 니 다.
여기 서 저 는 코드 를 제공 합 니 다. 이것 은 포럼 에서 누군가가 질문 할 때 제 시 된 코드 로 사용자 정의 링크 의 조작 을 실현 합 니 다 (독 자 는 이 를 바탕 으로 계속 보완 할 수 있 습 니 다).이 코드 는 C \ # 기술 과 관련 되 기 때문에 초보 자 에 게 C \ # 를 배 우 는 데 참고 가 됩 니 다.
실체 클래스:
    /// 
    ///    
    /// 
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public Student(string name, int age)
        {
            this.Name = name;
            this.Age = age;
        }

        public override string ToString()
        {
            return "\r
" + this.Name + ": " + this.Age + " ";         }     }

링크 노드 클래스:
    /// 
    ///    
    /// 
    ///   
    public class Node
    {
        public T Data { get; set; }
        public Node Next { get; set; }

        public Node(T data)
        {
            this.Data = data;
            this.Next = null;
        }

        /// 
        ///     
        /// 
        ///     
        public void Append(Node newNode)
        {
            //       null,            
            if (this.Next == null)
            {
                this.Next = newNode;
            }
            //        null,          
            else
            {
                this.Next.Append(newNode);
            }
        }

        public override string ToString()
        {
            string output = this.Data.ToString();
            if (this.Next != null)
            {
                output += " " + this.Next.ToString();
            }
            return output;
        }
    }

링크 종류:
    /// 
    ///    
    /// 
    ///   
    public class LinkedList
    {
        Node headNode = null;//   

        /// 
        ///       
        /// 
        /// 
        public void Add(T data)
        {
            if (headNode == null)
            {
                headNode = new Node(data);
            }
            else
            {
                headNode.Append(new Node(data));
            }
        }

        /// 
        ///    ,        
        /// 
        /// 
        /// 
        public T this[int index]
        {
            get
            {
                int temp = 0;
                Node node = headNode;

                while (node != null && temp <= index)
                {
                    if (temp == index)
                    {
                        return node.Data;
                    }
                    else
                    {
                        node = node.Next;
                    }
                    temp++;
                }
                return default(T);
            }
        }

        public override string ToString()
        {
            if (headNode != null)
            {
                return this.headNode.ToString();
            }
            return string.Empty;
        }
    }

주 함수:
    class Program
    {
        static void Main(string[] args)
        {
            LinkedList intList = new LinkedList();
            Enumerable.Range(0, 5).ToList().ForEach(x => intList.Add(x));
            Console.WriteLine("      :{0}\r
", intList);             LinkedList students = new LinkedList();             students.Add(new Student(" ", 20));             students.Add(new Student(" ", 22));             students.Add(new Student(" ", 21));             Console.WriteLine(students[1].Name + " :" + students[1].Age);             Console.ReadLine();         }     }

마지막 으로 마이크로소프트 공식 링크 류 를 부록 하 다.https://msdn.microsoft.com/zh-cn/library/he2s3bh7(v=vs.110).aspx。

좋은 웹페이지 즐겨찾기