我在一个小时前提出了一个问题,询问如何做类似的事情,在我得到一些帮助后,我能够做到。基本上,我收到一个错误说 “无法确定条件表达式的类型,因为'string'和'UltimateTeam.Toolkit.Parameter.Formation'之间没有隐式转换”
这是代码,搜索一个玩家:我也得到了关于阵型的错误。
public async void start()
{
var searchRequest = new SearchRequest();
var searchParameters = new PlayerSearchParameters
{
Formation = comboBox2.SelectedItem == null ? Formation.FourThreeThree : (Formation)(comboBox2.SelectedItem as ComboboxItem2).Value2,
};
第二段代码:
foreach (Formation formation in Enum.GetValues(typeof(Formation)))
{
ComboboxItem2 item2 = new ComboboxItem2();
item2.Text2 = formation.ToString();
item2.Value2 = formation;
comboBox2.Items.Add(item2);
}
最后一段代码:
public class ComboboxItem2
{
public string Text2 { get; set; }
public object Value2 { get; set; }
public override string ToString()
{
return Text2;
}
}
关于如何修复它的任何想法?
谢谢,
杰克。
答案 0 :(得分:2)
使用Enum.Parse
将string
转换为您的枚举类型Formation
。
Formation = comboBox2.SelectedItem == null
? Formation.FourThreeThree
: (Formation) Enum.Parse(typeof(Formation), comboBox2.Text);
修改所以PlayerSearchParameters.Formation
是string
,这应该有效:
Formation = comboBox2.SelectedItem == null
? Formation.FourThreeThree.ToString()
: comboBox2.Text,