Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- asdf
- [1,2]
- fff
- [4,5]
- asdf1fff4
- asdf1fff5
- asdf2fff4
- asdf2fff5
- public static IEnumerable<IEnumerable<string>> Parse(IEnumerable<string> rawData) {
- return
- rawData.Select(s =>
- Regex.Match(
- s,
- "^(\[((?<Item>[^,]*),)*(?<Item>[^,]*)]|(?<Item>.*))$",
- RegexOptions.ExplicitCapture|RegexOptions.Singleline
- ).Groups["Item"].Captures.Cast<Capture>().Select(c => c.Value).ToArray()
- );
- }
- public static IEnumerable<string> All(IEnumerable<IEnumerable<string>> parsedData) {
- return
- parsedData.DefaultIfEmpty(new[] { "Отсутствуют исходные данные." }).
- Aggregate((e, d) => e.SelectMany(_ => d, string.Concat));
- }
- public static void Test() {
- IEnumerable<string> rawData = new[] { "asdf", "[1,2]", "fff", "[4,5]" };
- IEnumerable<IEnumerable<string>> parsedData = Parse(rawData);
- IEnumerable<string> all = All(parsedData);
- foreach(string s in all) {
- Console.WriteLine(s);
- }
- }
- private static string[] Generate(IEnumerable<string> rawData)
- {
- IEnumerable<IEnumerable<string>> parsedData = rawData.Select(s =>
- s.Trim('[').Trim(']').Split(',')
- );
- return
- parsedData.DefaultIfEmpty(new[] { "Отсутствуют исходные данные." }).
- Aggregate((e, d) => e.SelectMany(_ => d, string.Concat)).ToArray();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement