基本上我有一个小问题。我似乎无法让这个工作。我到处都看。我正在尝试使用我的Concat方法复制列表
<h2>Table with no header</h2>
<table>
<tbody>
<tr>
<td>First column - bold</td>
<td>Second column</td>
</tr>
<tr>
<td>First column - bold</td>
<td>Second column</td>
</tr>
</tbody>
</table>
<h2>Table with a header</h2>
<table>
<thead>
<tr>
<th>Header</th>
<th>Header</th>
</tr>
</thead>
<tbody>
<tr>
<td>First column - not bold</td>
<td>Second column</td>
</tr>
<tr>
<td>First column - not bold</td>
<td>Second column</td>
</tr>
</tbody>
</table>
哪种方法正常。
但是,我对我的复制方法没有任何好运:
public void Concat(LinkListGen<T> list2)
{
LinkGen<T> temp = list2.list;
while (temp != null)
{
AppendItem(temp.Data);
temp = temp.Next;
}
}
我知道这段代码可能很愚蠢,我只是在改变编码/试验和尝试。
执行代码时,不会显示任何内容。
public void Copy(LinkListGen<T> list2)
{
LinkGen<T> temp = list2.list;
while (temp != null)
{
Concat(list2);
AppendItem(list2.list.Data);
temp = temp.Next;
}
}
基本上我想要这样的输出(可能以错误的顺序键入数字):
list2.AddItem(56);
list2.AddItem(88);
list2.AddItem(17);
list.AddItem(40);
list.AddItem(11);
list.AddItem(77);
list3.Copy(list2);
list3.Copy(list);
System.Console.WriteLine("Copy List" + list3.DisplayItems());
谢谢。
编辑 - 我是个白痴,忘记了AppendItem方法。Copy List 56 88 17 40 11 77
编辑 -
public void AppendItem(T item)
{
LinkGen<T> temp = list;
if (list == null)
{
new LinkGen<T>(item, null);
}
else
{
while (temp.Next != null)
{
temp = temp.Next;
}
temp.Next = new LinkGen<T>(item, null);
}
}
}
class LinkGen<T>
{
private T data;
private LinkGen<T> next;
public LinkGen(T item)
{
data = item;
next = null;
}
public LinkGen(T item, LinkGen<T> list)
{
data = item;
next = list;
}
public LinkGen<T> Next
{
set { this.next = value; }
get { return this.next; }
}
public T Data
{
set { this.data = value; }
get { return this.data; }
}
}
答案 0 :(得分:1)
建议更正
class LinkListGen<T> where T : IComparable
{
private LinkGen<T> list;
public LinkListGen() { }
private LinkGen<T> LastNode ()
{
var temp = list;
while (temp != null && temp.Next != null)
temp = temp.Next;
return temp;
}
public void AppendItem(T item)
{
if (list == null)
list = new LinkGen<T>(item, null);
else
{
LinkGen<T> temp = LastNode();
temp.Next = new LinkGen<T>(item, null);
}
}
public void Concat(LinkListGen<T> list2)
{
if (list2 == null)
return;
LinkGen<T> temp = list2.list;
while (temp != null)
{
AppendItem(temp.Data);
temp = temp.Next;
}
}
public void Copy(LinkListGen<T> list2)
{
Concat(list2);
}
class LinkGen<T2>
{
public LinkGen(T2 item): this(item, null) { }
public LinkGen(T2 item, LinkGen<T2> list)
{
Data = item;
Next = list;
}
public LinkGen<T2> Next { set; get; }
public T2 Data { set ; get ; }
}
}
答案 1 :(得分:0)
应答 -
public void Copy(LinkListGen<T> list2)
{
LinkGen<T> temp = list2.list;
while (temp != null)
{
AppendItem(temp.Data);
temp = temp.Next;
}
}
如果有人遇到过同样的问题。他们终于成了一个解决方案。是的,我知道....我是个白痴!