2017-08-03 24 views
0

我有一个类里面的下面列出的清单:进入里面另一个列表

public class TriggerRequest 
{ 
    public int requestReference { get; set; } 
    public List<RequestParameters> requestParameters { get; set; } 
    public List<RequestData> data { get; set; } 
} 
public class RequestParameters 
{ 
    public string name { get; set; } 
    public string value { get; set; } 
} 
public class RequestData 
{ 
    public string name { get; set; } 
} 

我试图从类requestParameters的访问“名”的字符串。我试过用这个:

TriggerRequest triggerRequest = null; 
Console.WriteLine(triggerRequest.requestParameters.name); 

但它不起作用。我如何从requestParameters获取名称?

+1

'requestParameters'是一个'List'。你必须先获得一个项目才能进入'name'属性 – Pikoh

+1

你需要告诉它你想从中获取名称的'RequestParameters'列表中的哪个项目,比如'triggerRequest.requestParameters [0] .name '或'triggerRequest.requestParameters.First()。name' – Equalsk

+0

因为它是一个列表,所以你必须迭代这些项目并获得名称的值。如果您需要名字值,迭代不需要,就像@Equalsk建议的那样。 –

回答

2

您需要告诉它您想要列表中的哪个项目名称为

例如,

triggerRequest.requestParameters[0].name

triggerRequest.requestParameters.First().name

+0

将此标记为答案,因为它是第一个。谢谢! – Radu

0

让类TriggerRequest的对象是objTriggerRequest然后objTriggerRequest.requestParameters将是一个List<RequestParameters>所以,你必须访问其index否则一些LINQ的扩展方法将每个RequestParameters对象。 你可以尝试这样的事情:

if(objTriggerRequest.requestParameters.Count > 0) 
{ 
    string name = objTriggerRequest.requestParameters[0].name; 
    // You will get the name of first RequestParameters object 
    // proceed with that 
} 

您可以尝试使用First()拿到的第一个元素,使用循环,如果你需要遍历的requestParameters

0

收集您可以通过一个名字得到一个要求

TriggerRequest trigger=new TriggerRequest();  
foreach(RequestParameters request in trigger.requestParameters) 
{ 
    Console.WriteLine(request.name); 
} 

您可以通过索引它

TriggerRequest trigger=new TriggerRequest(); 
trigger.requestParameters[0].name 
得到具体请求名称