如何对字典中的多个变量进行输出?
How to do an out on multiple variables in a dictionary?
我想对字典中的多个变量执行 out
,如下例所示:
string color;
int number;
float numval;
Dictionary<string, (string, int, float)> Property = new Dictionary<string, (string, int, float)>();
Property.Add("G", ("Green", 2, (float)2.99));
Property.TryGetValue("G", out(color, number, numval));
当我尝试使用 TryGetValue
时,出现了这个错误:
An out or ref value must be an assignable variable
我知道我可以使用一个元组,而不是像这样的多个值,但我希望它能像那样工作。
我不会在那样的字典中使用元组..但如果你真的需要,你可以这样做:
Dictionary<string, (string, int, float)> Property = new Dictionary<string, (string, int, float)>();
Property.Add("G", ("Green", 2, 2f));
if(Property.TryGetValue("G", out var val))
{
string color = val.Item1;
int number = val.Item2;
float numval = val.Item3;
// or as @canton7 suggested in the comments:
var (color, number, numVal) = val;
}
我想对字典中的多个变量执行 out
,如下例所示:
string color;
int number;
float numval;
Dictionary<string, (string, int, float)> Property = new Dictionary<string, (string, int, float)>();
Property.Add("G", ("Green", 2, (float)2.99));
Property.TryGetValue("G", out(color, number, numval));
当我尝试使用 TryGetValue
时,出现了这个错误:
An out or ref value must be an assignable variable
我知道我可以使用一个元组,而不是像这样的多个值,但我希望它能像那样工作。
我不会在那样的字典中使用元组..但如果你真的需要,你可以这样做:
Dictionary<string, (string, int, float)> Property = new Dictionary<string, (string, int, float)>();
Property.Add("G", ("Green", 2, 2f));
if(Property.TryGetValue("G", out var val))
{
string color = val.Item1;
int number = val.Item2;
float numval = val.Item3;
// or as @canton7 suggested in the comments:
var (color, number, numVal) = val;
}