如何根据变量名称命名数组

时间:2016-05-22 07:42:00

标签: c# asp.net arrays

工作是:

foreach (string feature in alpha)
            {
                for (int i=0; i < l.Count; i++)
                {
                    if (l[i] == feature)
                    {
                        string[] ("{0}",feature) = new string[];
                    }
                }
            }

string[] ("{0}",feature) = new string[];不正确。需要做的是,只要条件(l[i] == feature)匹配,就创建一个新的字符串数组:string[] (whatever string there is in feature) = new string[]

可能的?

2 个答案:

答案 0 :(得分:1)

我认为词典就是你想要的。

var arrays = alpha
               .Where(a => l.Contains(a))
               .ToDictionary(a => a, a => new List<string>());

然后访问一个:

List<string> array = arrays["somefeature"];

同样停止使用数组,几乎没有理由在其他集合类型上选择它们。我使用了List,因为你说你要附加它。

答案 1 :(得分:1)

您可以使用排序列表,其中键值将是您的功能;

        var featureList = new SortedList<string, string[]>();

        foreach (string feature in alpha)
        {
            var matchingFeatures = new List<string>();
            for (int i = 0; i < l.Length; i++)
            {
                if (l[i] == feature)
                {
                    matchingFeatures.Add(l[i]);
                }
            }
            featureList.Add(feature, matchingFeatures.ToArray());
        }