我创建了一个方法来组织不知道类型的通用列表,它将对它的int或decimal进行排序。如何在不知道类型的情况下实例化通用列表
然而,从文本框检索值的代码使用列表
我试图将其转换为列表,但它不工作。 我想要这个代码工作,如果他们在文本框中键入整数或小数或字符串。
这是一个面试问题,他们不愿使用的排序方法的一部分,并且输入应接收例如INTS或小数
private void btnSort_Click(object sender, EventArgs e)
{
List<int> list = new List<int>();
list.Add(int.Parse(i1.Text));
list.Add(int.Parse(i2.Text));
list.Add(int.Parse(i3.Text));
list.Add(int.Parse(i4.Text));
list.Add(int.Parse(i5.Text));
Sort(list);
StringBuilder sb = new StringBuilder();
foreach (int t in list)
{
sb.Append(t.ToString());
sb.AppendLine();
}
result.Text = sb.ToString();
}
private void Sort<T>(List<T> list)
{
bool madeChanges;
int itemCount = list.Count;
do
{
madeChanges = false;
itemCount--;
for (int i = 0; i < itemCount; i++)
{
int result = Comparer<T>.Default.Compare(list[i], list[i + 1]);
if (result > 0)
{
Swap(list, i, i + 1);
madeChanges = true;
}
}
} while (madeChanges);
}
public List<T> Swap<T>(List<T> list,
int firstIndex,
int secondIndex)
{
T temp = list[firstIndex];
list[firstIndex] = list[secondIndex];
list[secondIndex] = temp;
return list;
}
我想这样的事情:但给人错误 错误1无法找到类型或命名空间名称'T'(您是否缺少using指令或程序集引用?)c:\ users \ luis.simbios \ documents \ visual studio 2010 \ Projects \ InterViewPreparation1 \ InterViewPreparation1 \ Generics \ GenericsSorting1.cs 22 18 InterViewPreparation1
List list = new List(); list.Add(i1.Text); list.Add(i2.Text); 分类(列表);
为什么祈祷告诉你不是使用'List .Sort'? –
jason
+1给Jason。这里是文档:http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx –
,因为它是一个面试问题,他们要求不要使用排序方法。 –