我正在使用regex
代碼來查找我的windows phone應用程序中的聯繫人匹配,它工作良好,但有時會出錯"Values cannot be null"
。c#正則表達式給出錯誤
try {
var l = new List<string>();
foreach (var item in listobj)
l.Add(item.FirstName);
var digitMap = new Dictionary<int, string>() {
{ 1, "" },
{ 2, "[abcABC]" },
{ 3, "[defDEF]" },
{ 4, "[ghiGHI]" },
{ 5, "[jklJKL]" },
{ 6, "[mnoMNO]" },
{ 7, "[pqrsPQRS]" },
{ 8, "[tuvTUV]" },
{ 9, "[wxyzWXYZ]" },
{ 0, "" },
};
var enteredDigits = str;
var charsAsInts = enteredDigits.ToCharArray().Select(x => int.Parse(x.ToString()));
var regexBuilder = new StringBuilder();
foreach (var val in charsAsInts)
regexBuilder.Append(digitMap[val]);
var pattern = regexBuilder.ToString();
//append a ".*" to the end of the regex to make it "StartsWith", beginning for "EndsWith", or both for "Contains";
pattern = ".*" + pattern + ".*";
var matchingNames = l.Where(x => Regex.IsMatch(x, pattern));
SearchListbox.ItemsSource = listobj.FindAll(x=>x.PhoneNumbers.Contains(str) | x.FirstName.Contains(matchingNames.FirstOrDefault()));
} catch (Exception e) {
MessageBox.Show(e.Message);
}
我想當沒有接觸匹配時會拋出一個錯誤,它也不會顯示所有的匹配,直到整個名字匹配。
怎麼了?謝謝。
你能告訴我第一取悅你有什麼actualy想幹什麼?這看起來很複雜,對我來說應該很簡單 – Vajura 2014-10-09 09:40:44
哪一行會引發異常? – 2014-10-09 09:42:00