Я анализирую запятую с помощью LINQ. В запросе LINQ я вызываю Regex.Split несколько раз, чтобы проанализировать элементы, разделенные запятыми. Я пытаюсь выяснить, как мне избежать многократного вызова метода .Split (), но мне не удается это выяснить.
Пример:
// Sample data
string data = @"A,1,Foo1,14:03:08,14/11/11,
A,2,Foo2,11:51:11,09/11/11,
A,3,Foo3,11:51:11, 09/11/11,
A,4,Foo4,12:11:13,09/11/11,
A,5,Foo5,12:23:02,13/11/11,
A,6,Foo6,15:37:58,11/11/11";
// Add each line of data into an array
string[] dataSplit = Regex.Split(data,"\r\n");
// Create an anon object for each line item
var rows = from a in dataSplit
select new {
Name = Regex.Split(a, ",")[0],
ID = Regex.Split(a, ",")[1],
Val = Regex.Split(a, ",")[2],
Time = Regex.Split(a, ",")[3],
Date = Regex.Split(a, ",")[4]
};
Обратите внимание, что в запросе LINQ я вызываю Regex.Split, чтобы определить значение индекса для каждой позиции. Интуитивно, мне кажется, что вызов .Split () для каждого anon prop не требует дополнительных затрат.
Как я могу создать переменную в запросе LINQ, которая разделяет строку в области видимости, так что при установке свойства объекта anon мне не нужно вызывать метод Regex.Split ()?