wasSharp – Diff between revs 7 and 27

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
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 }