you can sort with a compare function passed to sort, you just need to extract the part of the string you want to sort by
string[] tempseq = { "0:0", "0:5", "0:10", "0:1",
"0:6", "0:11", "0:2", "0:7", "0:12", "0:3", "0:8", "0:13"
};
Func<string, int> second = (s) => int.Parse(s.Split(":")[1]);
Array.Sort(tempseq, (l,r) => second(l).CompareTo(second(r)) );
for using first then second you could do
(int, int) pair(string s)
{
var parts = s.Split(":").Select(int.Parse).ToArray();
return (parts[0], parts[1]);
};
Array.Sort(tempseq, (l,r) =>
{
var left = pair(l);
var right = pair(r);
return left.Item1 == right.Item1 ?
left.Item2.CompareTo(right.Item2) :
left.Item1.CompareTo(right.Item1);
});