wasSharp – Diff between revs 7 and 27
?pathlinks?
Rev 7 | Rev 27 | |||
---|---|---|---|---|
Line 23... | Line 23... | |||
23 | public static string FromEnumerable(IEnumerable<string> input) |
23 | public static string FromEnumerable(IEnumerable<string> input) |
|
24 | { |
24 | { |
|
25 | return string.Join(",", |
25 | return string.Join(",", |
|
26 | input |
26 | input |
|
27 | .Select(o => o.Replace("\"", "\"\"")) |
27 | .Select(o => o.Replace("\"", "\"\"")) |
|
28 | .Select(o => o.IndexOfAny(new[] {'"', ' ', ',', '\r', '\n'}).Equals(-1) ? o : "\"" + o + "\"")); |
28 | .Select(o => o.IndexOfAny(new[] { '"', ' ', ',', '\r', '\n' }).Equals(-1) ? o : "\"" + o + "\"")); |
|
29 | } |
29 | } |
|
Line 30... | Line 30... | |||
30 | |
30 | |
|
31 | /////////////////////////////////////////////////////////////////////////// |
31 | /////////////////////////////////////////////////////////////////////////// |
|
32 | // Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 // |
32 | // Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 // |
|
Line 39... | Line 39... | |||
39 | public static string FromDictionary<K, V>(Dictionary<K, V> input) |
39 | public static string FromDictionary<K, V>(Dictionary<K, V> input) |
|
40 | { |
40 | { |
|
41 | return string.Join(",", input.Keys.Select(o => o.ToString()).Zip(input.Values.Select(o => o.ToString()), |
41 | return string.Join(",", input.Keys.Select(o => o.ToString()).Zip(input.Values.Select(o => o.ToString()), |
|
42 | (o, p) => |
42 | (o, p) => |
|
43 | string.Join(",", |
43 | string.Join(",", |
|
44 | o.Replace("\"", "\"\"").IndexOfAny(new[] {'"', ' ', ',', '\r', '\n'}).Equals(-1) |
44 | o.Replace("\"", "\"\"").IndexOfAny(new[] { '"', ' ', ',', '\r', '\n' }).Equals(-1) |
|
45 | ? o |
45 | ? o |
|
46 | : "\"" + o + "\"", |
46 | : "\"" + o + "\"", |
|
47 | p.Replace("\"", "\"\"").IndexOfAny(new[] {'"', ' ', ',', '\r', '\n'}).Equals(-1) |
47 | p.Replace("\"", "\"\"").IndexOfAny(new[] { '"', ' ', ',', '\r', '\n' }).Equals(-1) |
|
48 | ? p |
48 | ? p |
|
49 | : "\"" + p + "\""))); |
49 | : "\"" + p + "\""))); |
|
50 | } |
50 | } |
|
Line 51... | Line 51... | |||
51 | |
51 | |
|
Line 56... | Line 56... | |||
56 | /// Converts successive comma-separated values to key-value pairs. |
56 | /// Converts successive comma-separated values to key-value pairs. |
|
57 | /// </summary> |
57 | /// </summary> |
|
58 | /// <returns>key-value pairs of successive comma-separate values</returns> |
58 | /// <returns>key-value pairs of successive comma-separate values</returns> |
|
59 | public static IEnumerable<KeyValuePair<string, string>> ToKeyValue(string input) |
59 | public static IEnumerable<KeyValuePair<string, string>> ToKeyValue(string input) |
|
60 | { |
60 | { |
|
61 | return ToEnumerable(input).AsParallel().Select((o, p) => new {o, p}) |
61 | return ToEnumerable(input).AsParallel().Select((o, p) => new { o, p }) |
|
62 | .GroupBy(q => q.p/2, q => q.o) |
62 | .GroupBy(q => q.p / 2, q => q.o) |
|
63 | .Select(o => o.ToArray()) |
63 | .Select(o => o.ToArray()) |
|
64 | .TakeWhile(o => o.Length%2 == 0) |
64 | .TakeWhile(o => o.Length % 2 == 0) |
|
65 | .Where(o => !string.IsNullOrEmpty(o[0]) || !string.IsNullOrEmpty(o[1])) |
65 | .Where(o => !string.IsNullOrEmpty(o[0]) || !string.IsNullOrEmpty(o[1])) |
|
66 | .ToDictionary(o => o[0], p => p[1]).Select(o => o); |
66 | .ToDictionary(o => o[0], p => p[1]).Select(o => o); |
|
67 | } |
67 | } |
|
Line 68... | Line 68... | |||
68 | |
68 | |
|
Line 78... | Line 78... | |||
78 | { |
78 | { |
|
79 | var key = input.Key.ToString(); |
79 | var key = input.Key.ToString(); |
|
80 | var value = input.Value.ToString(); |
80 | var value = input.Value.ToString(); |
|
Line 81... | Line 81... | |||
81 | |
81 | |
|
82 | return string.Join(",", key |
82 | return string.Join(",", key |
|
83 | .Replace("\"", "\"\"").IndexOfAny(new[] {'"', ' ', ',', '\r', '\n'}).Equals(-1) |
83 | .Replace("\"", "\"\"").IndexOfAny(new[] { '"', ' ', ',', '\r', '\n' }).Equals(-1) |
|
84 | ? key |
84 | ? key |
|
85 | : "\"" + key + "\"", value |
85 | : "\"" + key + "\"", value |
|
86 | .Replace("\"", "\"\"") |
86 | .Replace("\"", "\"\"") |
|
87 | .IndexOfAny(new[] {'"', ' ', ',', '\r', '\n'}) |
87 | .IndexOfAny(new[] { '"', ' ', ',', '\r', '\n' }) |
|
88 | .Equals(-1) |
88 | .Equals(-1) |
|
89 | ? value |
89 | ? value |
|
90 | : "\"" + value + "\""); |
90 | : "\"" + value + "\""); |
|
Line 135... | Line 135... | |||
135 | } |
135 | } |
|
Line 136... | Line 136... | |||
136 | |
136 | |
|
137 | yield return m.ToString(); |
137 | yield return m.ToString(); |
|
138 | } |
138 | } |
|
139 | } |
- | ||
140 | } |
139 | } |
|
- | 140 | } |