工作是:
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[]
。
可能的?
答案 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());
}