2012-02-23 3 views
1

Ищите советы и элегантные решения, извлекающие свойства и ценности в любую удобную структуру данных.C# string splitting elegant solution

Text="{Binding Path=SelectedValue,Mode=TwoWay}" 

Решение является иметь что-то вроде:

List<string1, string2> where string1=Path, string2=SelectedValue 

EDIT:

это можно сделать GENERIC, чтобы понять оба пути тока один и:

Command="{Binding ExecuteSearchCommand} 
+0

вы хотите, чтобы динамически генерировать привязки на основе списка пути? – mmix

+1

Этот крик «Регулярные выражения» – m0skit0

+0

Это выглядит как [привязка XAML] (http://msdn.microsoft.com/en-us/library/ms752300.aspx). Это? Если да, вам нужно иметь возможность анализировать весь возможный набор значений или только явный пример, который вы даете? –

ответ

3

Использование:

var result = Regex.Matches(input, @"(\w+)=(\w+)").Cast<Match>() 
    .Select(m => new 
     { 
      Property = m.Groups[1].Value, 
      Value = m.Groups[2].Value 
     }); 
+0

Не будет ли группа 1 «Path = SelectedValue, Mode»? Regexes по умолчанию жадные (по крайней мере, в Perl). – m0skit0

+0

@ m0skit0, '\ w' является буквенно-цифровым или подчеркивающим. Поэтому он не будет соответствовать ','. –

+0

Ты прав, и я глуп ... – m0skit0

0

Если у вас есть возможность немного форматировать строку, чтобы она соответствовала спецификация JSON (т.е. заменить = с:, то вы можете использовать один из следующих методов):

Parsing JSON using Json.net

Parse JSON in C#