Loading

C# NameValuePair 链表原理

 1     internal sealed class NameValuePair
 2     {
 3         readonly private string _name;
 4         readonly private string _value;
 5         readonly private int _length;
 6         private NameValuePair _next;
 7 
 8         internal NameValuePair(string name, string value, int length)
 9         {
10             Debug.Assert(!string.IsNullOrEmpty(name), "empty keyname");
11             _name = name;
12             _value = value;
13             _length = length;
14         }
15 
16         internal int Length
17         {
18             get
19             {
20                 Debug.Assert(0 < _length, "NameValuePair zero Length usage");
21                 return _length;
22             }
23         }
24 
25         internal string Name => _name;
26         internal string Value => _value;
27 
28         internal NameValuePair Next
29         {
30             get { return _next; }
31             set
32             {
33                 if ((null != _next) || (null == value))
34                 {
35                     throw new Exception();
36                 }
37                 _next = value;
38             }
39         }
40     }
41     class Program
42     {
43         static void Main(string[] args)
44         {
48 
49             NameValuePair chain1 = null, chain2 = null;
50 
51             for (var i = 1; i < 6; i++)
52             {
53                 if (null != chain2)
54                 {
55                     chain2 = chain2.Next = new NameValuePair(i.ToString(), Guid.NewGuid().ToString(), i);
56                 }
57                 else
58                 {
59                     chain1 = chain2 = new NameValuePair(i.ToString(), Guid.NewGuid().ToString(), i);
60                 }
61             }
62 
63 
64 
65 
66 
67 
68 
69             System.Console.WriteLine("Hello World!");
70         }

 

posted @ 2020-09-19 16:58  microestc  阅读(247)  评论(0)    收藏  举报