using System;
using System.Linq;
public class Test
{
public static void Main()
{
string str = "someId=00000-000-0000-000000;someotherId=123456789;someIdentifier=3030;";
var idLookup = str.Split(new[]{';'}, StringSplitOptions.RemoveEmptyEntries)
.Select(token => new {
keyvalues=token.Split(new[]{'='}, StringSplitOptions.RemoveEmptyEntries)
})
.ToLookup(x => x.keyvalues.First(), x => x.keyvalues.Last());
// now you can lookup a key to get it's value similar to a Dictionary but with duplicates allowed
string someotherId = idLookup["someotherId"].First();
Console.Write("someotherId: " + someotherId);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlzdHJpbmcgc3RyID0gInNvbWVJZD0wMDAwMC0wMDAtMDAwMC0wMDAwMDA7c29tZW90aGVySWQ9MTIzNDU2Nzg5O3NvbWVJZGVudGlmaWVyPTMwMzA7IjsKICAgICAgICB2YXIgaWRMb29rdXAgPSBzdHIuU3BsaXQobmV3W117JzsnfSwgU3RyaW5nU3BsaXRPcHRpb25zLlJlbW92ZUVtcHR5RW50cmllcykKICAgICAgICAgICAgLlNlbGVjdCh0b2tlbiA9PiBuZXcgeyAKICAgICAgICAgICAgICAgIGtleXZhbHVlcz10b2tlbi5TcGxpdChuZXdbXXsnPSd9LCBTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKQogICAgICAgICAgICB9KQogICAgICAgICAgICAuVG9Mb29rdXAoeCA9PiB4LmtleXZhbHVlcy5GaXJzdCgpLCB4ID0+IHgua2V5dmFsdWVzLkxhc3QoKSk7CiAgICAgICAgCiAgICAgICAgLy8gbm93IHlvdSBjYW4gbG9va3VwIGEga2V5IHRvIGdldCBpdCdzIHZhbHVlIHNpbWlsYXIgdG8gYSBEaWN0aW9uYXJ5IGJ1dCB3aXRoIGR1cGxpY2F0ZXMgYWxsb3dlZAogICAgICAgIHN0cmluZyBzb21lb3RoZXJJZCA9IGlkTG9va3VwWyJzb21lb3RoZXJJZCJdLkZpcnN0KCk7CiAgICAgICAgQ29uc29sZS5Xcml0ZSgic29tZW90aGVySWQ6ICIgKyBzb21lb3RoZXJJZCk7Cgl9Cn0=