Вы можете использовать регулярные выражения для каждого ключа в хеш-таблице. Это очень грязно, но работает:
static void Main(string[] args)
{
Hashtable myhashtable = new Hashtable();
myhashtable.Add("Teststring", "Hello");
myhashtable.Add("1TestString1", "World");
myhashtable.Add("2TestString2", "Test");
List<String> newht = new List<String>;
//match all strings with a number at the front
Regex rx = new Regex("^[1-9]");
foreach (string key in myhashtable.Keys)
{
if (rx.IsMatch(key) == true)
{
newht.Add(key);
}
}
//Loop through all the keys in the new collection and remove them from
//them from the main hashtable.
foreach (string key in newht)
{
myhashtable.Remove(key);
}
}
РЕДАКТИРОВАТЬ: И просто для удовольствия, вот версия LINQ (извините, я тоже только что).
Hashtable myhashtable = new Hashtable();
myhashtable.Add("Teststring", "Hello");
myhashtable.Add("1TestString1", "World");
myhashtable.Add("2TestString2", "Test");
Regex rx = new Regex("^[1-9]");
var k = (from string key in myhashtable.Keys
where rx.IsMatch(key)
select key).ToList();
k.ForEach(s => myhashtable.Remove(s));
РЕДАКТИРОВАТЬ: я только что добавил список sting, а не хеш-таблицу, я не мог вспомнить, какая версия .net имеет общие списки в нем *** шлепает лоб