C#里边字符串数组里的元素的排序

C#里面字符串数组里的元素的排序
比如现在有一个字符串一维数组里面有元素{"g","b","q","w"}
如何自己写一个方法来对这里面的元素排序?如果里面有数字的话怎么做类型判断?比如{"g","b","q","w","2","3"}
------解决思路----------------------
using System;

public class Test
{
public static void Main()
{
string[] data = { "g", "b", "q", "w", "2", "3" };
for (int i = 0; i < data.GetLength(0); i++)
{
for (int j = 1; j < data.GetLength(0) - i; j++)
{
if (data[j].CompareTo(data[j - 1]) < 0)
{
string t = data[j];
data[j] = data[j - 1];
data[j - 1] = t;
}
}
}
foreach (string s in data) Console.WriteLine(s);
}
}

http://ideone.com/AyxLdQ
在线测试通过
------解决思路----------------------
泛型冒泡排序

public delegate bool Contrast<T>(T t1, T t2);
public static void Sequence<T>(T[] items, Contrast<T> contrast)
{
for (int i = 0; i < items.Length; i++)
{
for (int j = i + 1; j < items.Length; j++)
{
if (contrast(items[i], items[j]))
{
var temp = items[i];
items[i] = items[j];
items[j] = (T)temp;
}
}
}
}
//调用方法
string[] arr = { "zg", "bb", "A", "ws", "22", "8" ,"09"};
Sequence(arr, (a, b) => a[0] > b[0]);//顺序
//Sequence(arr, (a, b) => a[0] < b[0]);//倒序
Console.WriteLine(string.Join(",", arr));

------解决思路----------------------
泛型的话就要了解那个IEqualityComparer还是IComparer接口了