【问题标题】:Take a list from a method and use it in another method从一个方法中获取一个列表并在另一个方法中使用它
【发布时间】:2017-04-13 23:53:16
【问题描述】:

在我的 Orange 课程中,我有这个方法:

    public static List<Orange> AddOrange()
    {
        List<Orange> oranges = new List<Orange>();
        oranges.Add(new Orange() { Weight = 150, Measure = 6 });
        oranges.Add(new Orange() { Weight = 160, Measure = 6 });
        oranges.Add(new Orange() { Weight = 160, Measure = 6 });
        oranges.Add(new Orange() { Weight = 150, Measure = 6 });
        oranges.Add(new Orange() { Weight = 160, Measure = 6 });
        oranges.Add(new Orange() { Weight = 160, Measure = 6 });

        return oranges;
    }

在我的 OrangeJuice 课程中,我有这个方法

public static int CreateJuice(List<Orange> oranges )
    {
        var bottle = new Bottle();
        var bottle2 = new Bottle();
        var cork = new Cork();
        var cork2 = new Cork();

        var orangeJuice = new OrangeJuice(1, 33, oranges, bottle, cork, 20);
        var orangeJuice2 = new OrangeJuice(2,33,oranges, bottle2,cork2, 20);

        var order = new Order();
        order.OrangeJuices.Add(orangeJuice);
        order.OrangeJuices.Add(orangeJuice2);

        var totalPrice = order.OrangeJuices.Sum(x => x.Price);

        return totalPrice;
    }

我想要做的是将我在 AddOrange 方法中创建的橙子(六个橙子)放入 CreateJuice 方法中。所以我从第一种方法得到的列表必须以某种方式进入第二种方法。

我想知道我是否做得正确?如果没有,我该如何解决?

【问题讨论】:

  • 你做得对! oragnes 是您在 CreateJuice 中的橙子列表
  • 第一种方法在哪里调用?看起来第一个方法返回一个橘子列表,第二个方法接受一个橘子列表。因此,无论调用这些方法的代码都可以处理。
  • var myJuice = CreateJuice(AddOrange());
  • 我还没有调用第一种方法(AddOrange)。我不确定如何以及在哪里可以调用它。我要做的就是从 AddOrange 方法中获取列表并将其插入,这样我就可以创建 OrangeJuice
  • @slugster 我认为这正是 OP 正在寻找的。 +1。

标签: c# methods parameters


【解决方案1】:

通常调用AddOrange的方法应该被命名为GetOranges

public static List<Orange> GetOranges()
{
    List<Orange> oranges = new List<Orange>();
    oranges.Add(new Orange() { Weight = 150, Measure = 6 });
    oranges.Add(new Orange() { Weight = 160, Measure = 6 });
    oranges.Add(new Orange() { Weight = 160, Measure = 6 });
    oranges.Add(new Orange() { Weight = 150, Measure = 6 });
    oranges.Add(new Orange() { Weight = 160, Measure = 6 });
    oranges.Add(new Orange() { Weight = 160, Measure = 6 });
    return oranges;
}

那么在你在代码中调用CreateJuice的地方,你只需要传递GetOranges

CreateJuice(GetOranges());

var oranges = GetOranges();
var juice = CreateJuice(oranges);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多