Chimney.MPD.MPDKeyWords.Response.GetResponseKeyValuePairList C# (CSharp) Method

GetResponseKeyValuePairList() private static method

private static GetResponseKeyValuePairList ( string responseString ) : string>>>.Task
responseString string
return string>>>.Task
            private static async Task<List<KeyValuePair<string, string>>> GetResponseKeyValuePairList(string responseString)
            {
                var list = new List<KeyValuePair<string, string>>();

                if (!string.IsNullOrEmpty(responseString))
                {
                    using (var stringReader = new StringReader(responseString))
                    {
                        string line = string.Empty;
                        while (!string.IsNullOrEmpty(line = await stringReader.ReadLineAsync()) 
                            && !line.Equals(MPDKeyWords.Response.OK))
                        {
                            var pair = line.Split(MPDKeyWords.Response.KEYVALUESEPERATION.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                            
                            var key = (pair.Length > 0) 
                                ? pair[0] 
                                : string.Empty;

                            if (pair.Length > 1)
                                pair[1] = pair[1].TrimStart(MPDKeyWords.Response.SPACE.ToCharArray());

                            var value = string.Empty;

                            for(var i = 1; i < pair.Length; i++)
                            {
                                value += pair[i];
                                if(i != pair.Length - 1) value += MPDKeyWords.Response.KEYVALUESEPERATION;
                            }

                            list.Add(new KeyValuePair<string, string>(key, value));
                        }
                    }
                }

                return list;
            }