我正在尝试转换我从API中提取的列表并将其转换为列表。该列表确实返回其他数据,但我在那里有代码只返回我想要的数据(可能是错误的)
//this pulls the data
public List<AccountBalance> CorpAccounts(int CORP_KEY, string CORP_API, int USER)
{
List<AccountBalance> _CAccount = new List<AccountBalance>();
EveApi api = new EveApi(CORP_KEY, CORP_API, USER);
List<AccountBalance> caccount = api.GetCorporationAccountBalance();
foreach (var line in caccount)
{
//everyting after
string apiString = line.ToString();
string[] tokens = apiString.Split(' ');
_CAccount.Add(line);
}
return _CAccount;
}
//I am trying to convert the list to the array here
private void docorpaccounts()
{
string[] corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER).ToArray();
}
使用该代码我收到此错误:
错误1无法隐式转换类型'EveAI.Live.AccountBalance []' 'string []'
不确定我在这里做错了什么。
答案 0 :(得分:4)
您尝试将AccountBalance[]
分配到string[]
- 正如错误所示。
除非您确实需要string[]
,否则您应该将变量声明更改为AccountBalance[]
:
private void docorpaccounts()
{
AccountBalance[] corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER).ToArray();
}
或指定AccountBalance
应如何转换为string
。例如使用ToString
方法:
private void docorpaccounts()
{
string[] corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER)
.Select(x => x.ToString())
.ToArray();
}
或其中一个属性
private void docorpaccounts()
{
string[] corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER)
.Select(x => x.MyStringProperty)
.ToArray();
}
答案 1 :(得分:1)
List<T>.ToArray
方法(msdn)
语法:
public T [] ToArray()
因此,如果您有List<AccountBalance>
,则在调用AccountBalance[]
方法时应该ToArray
。
试试这个:
AccountBalance[] corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER).ToArray();
正如@BenjaminGruenbaum在评论中提到的,更好的选择是使用var关键字(msdn):
var corpbal = cwaa.CorpAccounts(CORP_KEY, CORP_API, USER).ToArray();