我正在尝试从第三方API获得响应并将其转换为列表。
我在下面将结果分配给“ returnValue”的行上收到此错误。
我确保包括“ using System.Linq;”指令。
这是错误:
'ListCharacterResponse'不包含'ToList'的定义
public List<T> RetrieveCharacterListFromApi<T>(Guid gameId)
{
List<T> returnValue = default(List<T>);
var getCharacterResponse = GetCharacters(gameId);
var results = getCharacterResponse.Result;
// 'ListCharacterResponse' does not contain a definition for 'ToList'.
returnValue = results.ToList<T>();
return returnValue;
}
在这里,我连接到第三方API,并返回一个 ListCharacterResponse 对象:
public async Task<ListCharacterResponse> GetCharacters(Guid gameId)
{
ListCharacterResponse response;
response = await charMgr.GetCharactersListAsync(gameId);
return response;
}
我在.net控制器中像这样使用RetrieveCharacterListFromApi:
Guid gameId;
var characters = new List<Character>();
characters = API.RetrieveCharacterListFromApi<Character>(gameId);
还有另一种方法可以将其转换为列表吗?
谢谢!
答案 0 :(得分:2)
如果API调用的结果为Character
格式,那么您基本上就在那儿。除了.ToList<T>()
,您可以:
public List<T> RetrieveCharacterListFromApi<T>(Guid gameId)
{
// List<T> returnValue = default(List<T>);
var getCharacterResponse = GetCharacters(gameId);
var results = getCharacterResponse.Result;
// 'ListCharacterResponse' does not contain a definition for 'ToList'.
List<T> returnValue = new List<T>(results);
return returnValue;
}
或者,如果您需要迭代:
public List<T> RetrieveCharacterListFromApi<T>(Guid gameId)
{
List<T> returnValue = default(List<T>);
var getCharacterResponse = GetCharacters(gameId);
var results = getCharacterResponse.Result;
// 'ListCharacterResponse' does not contain a definition for 'ToList'.
foreach(Character character in results)
returnValue.Add(character);
return returnValue;
}