从该c#函数获取字符串值列表:
我一直在想办法解决这个问题,但一直没有奏效: 这个函数返回一个列表,但我似乎无法读取列表中每个对象的值 以下是所讨论的功能:从该c#函数获取字符串值列表:,c#,C#,我一直在想办法解决这个问题,但一直没有奏效: 这个函数返回一个列表,但我似乎无法读取列表中每个对象的值 以下是所讨论的功能: private static List<object> GetCrossProduct(object[][] arrays) { var results = new List<object>(); GetCrossProduct(results, arrays, 0, new object[array
private static List<object> GetCrossProduct(object[][] arrays)
{
var results = new List<object>();
GetCrossProduct(results, arrays, 0, new object[arrays.Length]);
return results;
}
private static void GetCrossProduct(ICollection<object> results, object[][] arrays, int depth, object[] current)
{
for (var i = 0; i < arrays[depth].Length; i++)
{
current[depth] = arrays[depth][i];
if (depth < arrays.Length - 1)
GetCrossProduct(results, arrays, depth + 1, current);
else
results.Add(current.ToList());
}
}
私有静态列表GetCrossProduct(对象[][]数组)
{
var results=新列表();
GetCrossProduct(结果、数组、0、新对象[arrays.Length]);
返回结果;
}
私有静态void GetCrossProduct(ICollection结果、对象[][]数组、int深度、对象[]当前)
{
对于(var i=0;i
您遇到了问题,因为您可能希望看到一个线性的列表,而实际上它是列表的列表
要访问结果中的元素,需要执行以下操作:
var resultingList = GetCrossProduct(blargh); // where blargh is the array you passed in
foreach (IList<object> innerList in resultingList)
{
foreach (var listValue in innerList)
{
// listValues should be the individual strings, do whatever with them
// e.g.
Console.Out.WriteLine(listValue);
}
}
这将创建一个新列表并将其添加到结果列表中。为什么它会返回某些内容?您的函数既没有返回类型,也没有输出参数。。它将始终返回为new List()
您能更清楚一些吗?有什么问题?您正在调用GetCrossProduct()?你在传递什么参数?当你需要返回字符串[][]数组的叉积时,它是一个递归函数。该列表返回对象列表中出现的内容(每个对象都有我需要的字符串)例如:我在提取对象中的值时遇到了很多麻烦(John,Red,Apple)在递归调用中传递current
的目的是什么?看起来它应该包含数组[depth]
的所有元素,不是吗?哇,非常感谢,我现在看到了。递归函数将结果添加到正在返回的列表中的新列表中。再次感谢你的帮助。
results.Add(current.ToList());