[英]C# ordering array of strings
我有一個字符串數組,格式為"ColX=Name=Value"
,其中X是數字,X> = 4。
我想按X的升序對數組進行排序,我嘗試使用
int colNbr = int.parse(string.Split('=')[0].Substring(3))
檢索X的值,但后來我不知道如何對字符串進行排序:/
任何更簡單的建議表示贊賞:)
您幾乎掌握了邏輯,只想嘗試使用OrderBy。 以下代碼將幫助您完成此任務?
List<string> inputList = SomeMethod(); // will populate the list
inputList = inputList.OrderBy(x=> int.parse(x.Split('=')[0].Substring(3))).ToList();
嘗試使用類 (上下文中為匿名類 ),而不是原始string
s:
string[] source = ...
var data = source
.Select(line => line.Split('='))
.Select(items => new { // Let's have classes
Col = int.Parse(items[0].Substring(3)),
Name = items[1],
Value = items[2], })
.OrderBy(item => item.Col); // ... which are easy to handle (e.g. sort)
請注意,如果您決定在給定的Col
按Name
排序,那么您要做的就是添加.ThenBy(item => item.Name)
:類易於維護。
如果要返回string[]
:
string[] sorted = data
.Select(item => $"Col{item.Col},{item.Name},{item.Value}")
.ToArray();
您可以使用OrderBy擴展方法。
string[] sortedArrayString = arrayOfString
.OrderBy(str => int.parse(str.Split('=')[0].Substring(3)))
.ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.