首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表和数组的问题

列表和数组的问题
EN

Stack Overflow用户
提问于 2015-01-15 19:16:08
回答 2查看 75关注 0票数 1

我一直在研究一个程序,它可以从化学公式中计算分子量。到目前为止,它运行得很好,直到这个错误发生。我想做一个把化学式分开的数组(它工作得很好)。从这里开始,我想进行一个方法调用,将数组发送到另一个方法。在这里,它被用于从化学公式中的元素中计算分子量,并将其添加到一个新的列表中。然后将列表返回到第一个方法。下面是代码(只显示一个元素或代码变得太大);

代码语言:javascript
复制
private void Textbox1_TextChanged(object sender, EventArgs e)
{
    string input = Textbox1.Text;
    string pattern = @"([A-Z][a-z]?\d*|[A-Z]?\d*)";
    string[] substrings = Regex.Split(input, pattern);

    MoleculeweightCalculator(substrings);

    Textbox2.Text = Convert.ToString(MoleculeWeightList.Sum());
}

private static MoleculeweightCalculator(string[] substrings)
{
    List<double> MoleculeWeightList = new List<double>();

    foreach (string match in substrings)
    {
        if (match == "H")
        {
            MoleculeWeightList.Add(1.008);
        }
    }
return MoleculeWeightList;
}

问题是,它不允许我将数组发送到另一个方法,并再次将列表返回给第一个方法。有什么不对吗?或者如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-15 19:24:27

您的代码中有许多错误,return必须是小写的,您应该将它放在循环之外,然后返回类型就会丢失。此外,您没有存储返回的数据。

这至少应汇编:

代码语言:javascript
复制
private void Textbox1_TextChanged(object sender, EventArgs e){
    string input = Textbox1.Text;
    string pattern = @"([A-Z][a-z]?\d*|[A-Z]?\d*)";
    string[] substrings = Regex.Split(input, pattern);

    var result = MoleculeweightCalculator(substrings);

    Textbox2.Text = Convert.ToString(result.Sum());
}

private static List<double> MoleculeweightCalculator(string[] substrings){
    List<double> MoleculeWeightList = new List<double>();

    foreach (string match in substrings){
        if (match == "H")
            MoleculeWeightList.Add(1.008);
    }

    return MoleculeWeightList;
}
票数 2
EN

Stack Overflow用户

发布于 2015-01-15 19:17:45

实际上,您没有使用返回值。MoleculeWeightList变量是该函数的本地变量,更具体地说,它是作用域的本地变量,不能在其外部使用。但是因为你return它,你可以这样做:

代码语言:javascript
复制
List<double> weightList = MoleculeweightCalculator(substrings);

Textbox2.Text = Convert.ToString(weightList.Sum());

将返回值分配给调用方法中的局部变量,然后可以在方法中稍后使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27971238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档