List<decimal> FindSumSubset(decimal sum, List<decimal> list)
{
for (int i = 0; i < list.Count; i++)
{
decimal value = list[i];
if (sum - value == 0.0m)
{
return new List<decimal> { value };
}
else
{
var subset = FindSumSubset(sum - value, list.GetRange(i + 1, list.Count -i));
if (subset != null)
{
return subset.Add(value);
}
}
}
return null;
}
我在这一行收到错误:
return subset.Add(value);
错误:
Error 1 Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<decimal>'
任何人都知道如何解决这个&gt;?
答案 0 :(得分:5)
subset.Add(value);
return subset;
您的问题与通用列表无关。 Add
方法只更改列表,但返回void /不返回任何内容。因此,您需要使返回成为单独的语句,并且不能对方法调用进行链接。
答案 1 :(得分:2)
subset.Add不会返回您要添加元素的列表对象。它返回void,因为它只是工作。
执行:
subset.Add(value);
return subset;
答案 2 :(得分:1)
if (subset != null)
{
subset.Add(value)
return subset;
}