请问在C#中用什么东西代替Delphi中的TStringList对象呢?(100分)

  • 主题发起人 crpp_hqx
  • 开始时间
C

crpp_hqx

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在C#中用什么东西代替Delphi中的TStringList对象呢?
 
B

blackbook

Unregistered / Unconfirmed
GUEST, unregistred user!
用 arraylist 可以代替吧!
 
B

bkzlbyplove

Unregistered / Unconfirmed
GUEST, unregistred user!
同意blackbook
 
C

Carlsberg

Unregistered / Unconfirmed
GUEST, unregistred user!
TStringList有排序功能。ArrayList没有。如果需要排序,可以使用SortedList。另外,TStringList可以合并成回车分隔符的单一文本串Text,C#中的Collection都不带此功能,因为ArrayList的子项不一定是串,此外还存在一个编码的问题。
建议你自己写一个专门处理串的类,实现IList接口即可。
 
S

shijunwu

Unregistered / Unconfirmed
GUEST, unregistred user!
用hashtable对象试试
 
C

Carlsberg

Unregistered / Unconfirmed
GUEST, unregistred user!
想想还是写一个给你:
public class StringList: ICollection
{
private ArrayList list;
private void EnsureList()
{
if (list == null)
{
list = new ArrayList();
}
}
public string this[int index]
{
get
{
if (list != null &&
index >= 0 &&
index < list.Count)
{
return (string) list[index];
}
return null;
}
set
{
while (Count <= index)
{
Add(string.Empty);
}
list[index] = value;
}
}
public void RemoveAt(int index)
{
if (list != null)
{
list.RemoveAt(index);
}
}
public void Insert(int index, string value)
{
EnsureList();
list.Insert(index, value);
}
public void Remove(string value)
{
if (list != null)
{
list.Remove(value);
}
}
public bool Contains(string value)
{
if (list != null)
{
return list.Contains(value);
}
return false;
}
public void Clear()
{
if (list != null)
{
list.Clear();
}
}
public int IndexOf(string value)
{
if (list != null)
{
return list.IndexOf(value);
}
return - 1;
}
public int Add(string value)
{
EnsureList();
return list.Add(value);
}
public override string ToString()
{
if (Count > 0)
{
string s = string.Empty;
for (int i = 0;
i < Count;
i++)
{
s += this + "/n";
}
return s;
}
return string.Empty;
}
#region ICollection 成员
public bool IsSynchronized
{
get
{
if (list != null)
{
return list.IsSynchronized;
}
return false;
}
}
public int Count
{
get
{
if (list != null)
{
return list.Count;
}
return 0;
}
}
public void CopyTo(Array array, int index)
{
if (list != null)
{
list.CopyTo(array, index);
}
}
public object SyncRoot
{
get
{
EnsureList();
return list;
}
}
#endregion
#region IEnumerable 成员
public IEnumerator GetEnumerator()
{
EnsureList();
return list.GetEnumerator(0, Count);
}
#endregion
}
 
W

wdl

Unregistered / Unconfirmed
GUEST, unregistred user!
Carlsberg [:)] good!
你说的啤酒哪里有卖?虽然我啤酒只能喝一点没酒量,但是头三口还是比较享受的[^]。
 
H

hardware007

Unregistered / Unconfirmed
GUEST, unregistred user!
arraylist 或hash table可以
 
C

Carlsberg

Unregistered / Unconfirmed
GUEST, unregistred user!
wdl:Carlsberg(嘉士伯)啤酒在大多数酒廊都有售。国内有三个厂家曾经或继续与丹麦原厂商合作生产该品牌啤酒,味道差一些,惠州、上海、武汉。其中355毫升玻璃瓶装最佳,听装次之,640毫升最差。^o^
 
C

crpp168

Unregistered / Unconfirmed
GUEST, unregistred user!
Carlsberg 说的很好,放分吧
Carlsberg:请问你的QQ号是多少,望多多交流
 
C

crpp_hqx

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢各位!
 
顶部