本文整理汇总了C#中ItemCollection.ContainsKey方法的典型用法代码示例。如果您正苦于以下问题:C# ItemCollection.ContainsKey方法的具体用法?C# ItemCollection.ContainsKey怎么用?C# ItemCollection.ContainsKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemCollection
的用法示例。
在下文中一共展示了ItemCollection.ContainsKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parser
public Parser(byte[] source)
{
if (source == null || source.Length <= 0) {
return;
}
this.source = source;
items = new ItemCollection();
// преобразуем данные в текст
string sourceString = GetSourceAsString();
// при запросе
// первая строка содержит метод запроса, путь и версию HTTP протокола
string httpInfo = sourceString.Substring(0, sourceString.IndexOf("\r\n"));
var myReg = new Regex(@"(?<method>.+)\s+(?<path>.+)\s+HTTP/(?<version>[\d\.]+)", RegexOptions.Multiline);
if (myReg.IsMatch(httpInfo)) {
Match m = myReg.Match(httpInfo);
if (m.Groups["method"].Value.ToUpper() == "POST") {
method = MethodsList.POST;
} else if (m.Groups["method"].Value.ToUpper() == "CONNECT") {
method = MethodsList.CONNECT;
} else {
method = MethodsList.GET;
}
// или можно определить метод вот так
// _Method = (MethodsList)Enum.Parse(typeof(MethodsList), m.Groups["method"].Value.ToUpper());
// но надежней всеже использовать условие
path = m.Groups["path"].Value;
httpVersion = m.Groups["version"].Value;
} else {
// при ответе
// первая строка содержит код состояния
myReg = new Regex(@"HTTP/(?<version>[\d\.]+)\s+(?<status>\d+)\s*(?<msg>.*)", RegexOptions.Multiline);
Match m = myReg.Match(httpInfo);
int.TryParse(m.Groups["status"].Value, out statusCode);
statusMessage = m.Groups["msg"].Value;
httpVersion = m.Groups["version"].Value;
}
// выделяем заголовки (до первых двух переводов строк)
headersTail = sourceString.IndexOf("\r\n\r\n");
if (headersTail != -1) {
// хвост найден, отделяем заголовки
sourceString = sourceString.Substring(sourceString.IndexOf("\r\n") + 2, headersTail - sourceString.IndexOf("\r\n") - 2);
}
// парсим заголовки и заносим их в коллекцию
myReg = new Regex(@"^(?<key>[^\x3A]+)\:\s{1}(?<value>.+)$", RegexOptions.Multiline);
MatchCollection mc = myReg.Matches(sourceString);
foreach (Match mm in mc) {
string key = mm.Groups["key"].Value;
if (!items.ContainsKey(key)) {
// если указанного заголовка нет в коллекции, добавляем его
items.AddItem(key, mm.Groups["value"].Value.Trim("\r\n ".ToCharArray()));
}
}
}