Cevap Geçmişi
20.07.19 20:27
Linq kullanarak şu şekilde sıralanabilir: string str = "A1B2C3D4E5";
str = String.Concat(str.OrderBy(c => c));
veya Linq kullanmadan: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars);
str = new string(strchars); Ancak verdiğiniz örnekte sayılar sonra geliyor. Normalde kod tablolarında sayılar önce olduğundan üsttekilerde sıralama sonucu şöyle olacaktır: 12345ABCDE Eğer sayıların sonra gelmesini istiyorsanız şöyle bir şey yapılabilir: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars, (a, b) => {
if (Char.IsDigit(a) && !Char.IsDigit(b)) return 1;
if (!Char.IsDigit(a) && Char.IsDigit(b)) return -1;
return a.CompareTo(b);
});
str = new string(strchars);
Aynen sizin verdiğiniz gibi sıralanmasını istiyorsanız (Önce harfler küçükten büyüğe, sonra rakamlar büyükten küçüğe) şöyle bir şey yapabilirsiniz. string str = "A1B2C3D4E5"; char[] strchars = str.ToCharArray(); Array.Sort(strchars, (a, b) => { if (Char.IsDigit(a) && !Char.IsDigit(b)) return 1; if (!Char.IsDigit(a) && Char.IsDigit(b)) return -1; if (Char.IsDigit(a) && Char.IsDigit(b)) return b.CompareTo(a); return a.CompareTo(b); }); str = new string(strchars);
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
06.06.19 03:04
Linq kullanarak şu şekilde sıralanabilir: string str = "A1B2C3D4E5";
str = String.Concat(str.OrderBy(c => c));
veya Linq kullanmadan: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars);
str = new string(strchars); Ancak verdiğiniz örnekte sayılar sonra geliyor. Normalde kod tablolarında sayılar önce olduğundan üsttekilerde sıralama sonucu şöyle olacaktır: 12345ABCDE Eğer sayıların sonra gelmesini istiyorsanız şöyle bir şey yapılabilir: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars, (a, b) => {
if (Char.IsDigit(a) && !Char.IsDigit(b)) return 1;
if (!Char.IsDigit(a) && Char.IsDigit(b)) return -1;
return a.CompareTo(b);
});
str = new string(strchars);
Aynen sizin verdiğiniz gibi sıralanmasını istiyorsanız koddaki return 1 'i return -1 , return -1 'i return 1 yapın.
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
06.06.19 03:03
Linq kullanarak şu şekilde sıralanabilir: string str = "A1B2C3D4E5";
str = String.Concat(str.OrderBy(c => c));
veya Linq kullanmadan: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars);
str = new string(strchars); Ancak verdiğiniz örnekte sayılar sonra geliyor. Normalde kod tablolarında sayılar önce olduğundan üsttekilerde sıralama sonucu şöyle olacaktır: 12345ABCDE Eğer sayıların sonra gelmesini istiyorsanız şöyle bir şey yapılabilir: string str = "A1B2C3D4E5";
char[] strchars = str.ToCharArray();
Array.Sort(strchars, (a, b) => {
if (Char.IsDigit(a) && !Char.IsDigit(b)) return 1;
if (!Char.IsDigit(a) && Char.IsDigit(b)) return -1;
return a.CompareTo(b);
});
str = new string(strchars);
Aynen sizin verdiğiniz gibi sıralanmasını istiyorsanız koddaki return 1'i return -1, return -1'i return 1 yapın.
Ekleyen: cevapsitesi
Değiştiren: cevapsitesi
04.06.19 20:05
Linq kullanarak şu şekilde sıralanabilir: string str = "A1B2C3D4E5"; str = String.Concat(str.OrderBy(c => c)); veya Linq kullanmadan: string str = "A1B2C3D4E5"; char[] strchars = str.ToCharArray(); Array.Sort(strchars); str = new string(strchars); Ancak verdiğiniz örnekte sayılar sonra geliyor. Normalde kod tablolarında sayılar önce olduğundan üsttekilerde sıralama sonucu şöyle olacaktır: 12345ABCDE Eğer sayıların sonra gelmesini istiyorsanız şöyle bir şey yapılabilir: string str = "A1B2C3D4E5"; char[] strchars = str.ToCharArray(); Array.Sort(strchars, (a, b) => { if (Char.IsDigit(a) && !Char.IsDigit(b)) return 1; if (!Char.IsDigit(a) && Char.IsDigit(b)) return -1; return a.CompareTo(b); }); str = new string(strchars);
Ekleyen: cevapsitesi
En fazla 3 eski durum gösterilir.