我正在学习LINQ。
我做了一些代码。
string mySource = @"
#16
100%
Monitor
#19
98%
Guide
#77
0%
Cord
";
var myPattern = @"#(\d+)\r\n(\d+)%\r\n([^\r\n]*)\r\n";
var myCollection = Regex.Matches(mySource, myPattern, RegexOptions.Singleline)
.Cast<Match>().ToList();
MessageBox.Show(string.Join("\n", myCollection));
看起来不错。
但是,我真正想做的就是这样。
(这种数据结构)
var myList = new List<string[]>();
var myArray1 = new string[] { "#16", "100%", "Monitor" };
var myArray2 = new string[] { "#19", "98%", "Guide" };
var myArray3 = new string[] { "#77", "0%", "Cord" };
myList.Add(myArray1);
myList.Add(myArray2);
myList.Add(myArray3);
我该怎么做?
此致
答案 0 :(得分:1)
你可以这样做:
List<string[]> myList = myCollection.Select(r => r.Value
.Split(new [] { '\r', '\n'},
StringSplitOptions.RemoveEmptyEntries)
).ToList();
最终会得到一个带有三个元素的List<T>
,每个元素都包含一系列字符串。