我目前正在使用C#7+进行.NET core 2.1项目。我想使用命名元组作为我的方法的结果。我无法以某种方式正确创建方法返回参数。
到目前为止,我有:
public static Tuple<List<Dictionary<string, object>>, List<KeyValuePair<int, Dictionary<string, float>>>> CreateFruits()
{
// logic to create apples and oranges
return new Tuple<List<Dictionary<string, object>>, List<KeyValuePair<int, Dictionary<string, float>>>>(apples, oranges);
}
当我使用创建水果的方法时,我现在可以像这样使用苹果和橙子:
var result = MyHelper.CreateFruits();
var apples = result.Item1;
var oranges = result.Item2;
我要使用Apple和Orange等产品代替Item1和Item2。
var result = MyHelper.CreateFruits();
var apples = result.Apple;
var oranges = result.Orange;
实际上是否有可能,我已经在C#7中阅读了有关“命名元组”的内容,但是我不确定如何正确使用它们,尤其是对于复杂的数据类型。
您知道如何解决此问题吗?
非常感谢!
答案 0 :(得分:0)
C#还支持以下内容,我认为它适合您想要做得更好的事情
class TuppleExample
{
public (Apple, Orange) GetAppleAndOrage()
{
var apple = new Apple();
var orange = new Orange();
return (apple, orange);
}
public void EatAppleAndOrange()
{
var (apple, orange) = this.GetAppleAndOrage();
apple.Bite();
orange.PeelThenBite();
}
}
class Apple { }
class Orange { }
好处是您可以跳过.Item1
,.Item2
语法,而直接按照声明它们的顺序访问元组变量。