![](/img/trans.png)
[英]ListBox data binding with List of List containing string string int
[英]Parse a string containing integers into a List<int>
我想讓用戶通過以下方式輸入整數:
用逗號分隔的數字:1,3,122,64000,27等
數字范圍:37-2000
上述混合物:55,2,1-10000,65000-65007,2182
如何解析一個字符串,該字符串可能是最終的任何形式的一個字符串?
例如:1-5,6,7-8應該給出一個包含1,2,3,4,5,6,7,8的列表
我對C#很陌生,所以我會非常感謝一些示例代碼。 謝謝。
用逗號分割的String.split將為你提供所需的一切,如果一個組包含 - 再次拆分並且你有兩個范圍值
這有效:
var query =
from x in text.Split(',')
let y = x.Split('-')
let b = int.Parse(y[0].Trim())
let e = int.Parse(y[y.Length - 1].Trim())
from n in Enumerable.Range(b, e - b + 1)
select n;
var result = query.ToList();
我建議添加一些錯誤處理,但如果您的輸入格式正確,則可行。
**編輯**:.NET 2.0版本。
var result = new List<int>();
foreach (var x in text.Split(','))
{
var y = x.Split('-');
var b = int.Parse(y[0].Trim());
var e = int.Parse(y[y.Length - 1].Trim());
for (var n = b; n <= e; n++)
{
result.Add(n);
}
}
幾乎相同... :-)
基於','對字符串進行標記,然后解析單個數字或范圍的列表。
從內存中,List上有一個Split(..)方法,您可以使用它來獲取令牌。 然后只測試一個' - '的存在(如果它的第一個字符然后是負數,顯然不是一個范圍)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.