我有下一节课
public class Response
{
public Prompts Prompts { get; set; }
}
public class Prompts
{
public List<Prompt> prompt { get; set; }
}
public class Prompt
{
public object message { get; set; }
public object details { get; set; }
}我试图检索prompt的消息,它的message包含'Hello‘。但这给了我一个错误:
不能隐式地将提示转换为字符串
到目前为止,我尝试了这个lambda表达式:
string message = Response.Prompts.prompt.Find(p => p.message.ToString().Contains("Hello")); 发布于 2016-12-06 17:30:54
这一行应该返回一个Prompt类型的对象。
Prompt pr = Response.Prompts.prompt.Find(p => p.message.ToString().Contains("Hello")); 如果只需要消息,则需要访问该属性。因为它是object类型的,所以需要调用ToString()方法
string message = pr.message.ToString();或将其转换为string
string message = (string)pr.message;如果您需要它,则不区分大小写:
Prompt pr = Response.Prompts.prompt.Find(
p => p.message.ToString().ToLower().Contains("Hello".ToLower())); 由于在没有找到匹配项时,Find(...)将返回null,因此在访问属性时最好检查它:
string message = pr != null pr.message.ToString() : "";https://stackoverflow.com/questions/41001328
复制相似问题