Борясь с этим кодом, очень новой для C# и я попытался несколько ответов на StackOverflow, прежде чем писать этот вопрос, поэтому, пожалуйста, выслушайте меня ...Выход внутренний словарь KeyValuePair утешать
var onlinePlayers = new Dictionary<int, Dictionary<string,string>>();
var count = 0;
foreach (BasePlayer player in BasePlayer.activePlayerList)
{
onlinePlayers.Add(
count,
new Dictionary<string, string> {
{ "SteamID", player.userID.ToString() },
{ "PlayerName", player.displayName.ToString() },
{ "IPAddress", Regex.Replace(player.net.connection.ipaddress, @":{1}[0-9]{1}\d*", "").ToString }
}
);
count += 1;
}
foreach (var k in onlinePlayers.Keys)
{
foreach (KeyValuePair<string, string> pair in onlinePlayers[k])
{
Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}
}
Я ожидаю
SteamID: 1231231221321
PlayerName: HelloWorld
IPAddress: 127.0.0.1
для каждого элемента в коллекции.
Compiler ошибка:
Error while compiling StatLogger.cs(38,111): error CS1503: Argument #2 cannot convert method group expression to type string
Попробуйте 'foreahc (var k in onlonePlayers.Keys) Consoe.WriteLine (" {0}: {1} ", k, onlineplayers [k]);' –
Это дает: Ошибка при компиляции StatLogger.cs (38,111) : ошибка CS1503: аргумент '# 2' не может преобразовать выражение' method group' в тип 'string' – zanderwar
Моя ошибка, это словарь ... должен быть вложенными циклами - первым, чтобы получить внутренний словарь, а второй - получить значения для него. Не на компьютере прямо сейчас, слишком сложно написать это на моем мобильном телефоне .... –