【问题标题】:How to iterate and compare through a list of string inside if statement如何迭代和比较 if 语句中的字符串列表
【发布时间】:2014-01-09 11:00:36
【问题描述】:

我正在解析 XML 并从 XML 中获取选定的标记值并将其存储在列表中。 然后我想在网格视图中显示这些值。但是如何在“IF”条件循环中比较多个值的这些值。

protected List<QueueListItems> GetQueueDetails(string xmlfile)
{
    var listofitems = new List<QueueListItems>();

    XmlDocument xdoc = new XmlDocument();
    xdoc.Load(xmlfile);
    // XmlNodeList itemnodes = xdoc.SelectNodes("//PublisherProperty/Name");
    XmlNodeList itemnodes = xdoc.GetElementsByTagName("PublisherProperty");
    foreach (XmlElement node in itemnodes)
    {
        if (node.FirstChild.InnerText = "Channel" || "QueueManager" || "QueueServer" || "QueueName")
            {
                listofitems.Add(new QueueListItems()
                {
                    Text = node.FirstChild.InnerText,
                    Value = node.FirstChild.NextSibling.InnerText
                });
            }
        }
        return listofitems;
    }

我的 XML 如下所示:-

'<'PublisherProperty'>''<br/>
'<'Name'>'Channel'<'/Name'>'<br/>
'<'Value'>'943'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'Queue'<'/Name'>'<br/>
'<'Value'>'q123'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'QueueServer'<'/Name'>'<br/>
'<'Value'>'U4VMMQSIT02'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'QueueName'<'/Name'>'<br/>
'<'Value'>'SIT</Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'QueuePort'<'/Name'>'<br/>
'<'Value'>'2454'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'QueueWaitInterval'<'/Name'>'<br/>
'<'Value'>'-1'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'Exception</Name'>'<br/>
'<'Value'>'9501</Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'ExceptionText'<'/Name'>'<br/>
'<'Value'>' Error'<'/Value'>'<br/>
'<'PublisherID'>'PUBLISHER '<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>
'<'PublisherProperty'>'<br/>
'<'Name'>'MsgElement'<'/Name'>'<br/>
'<'Value'>'null</Value'>'<br/>
'<'PublisherID'>'PUBLISHER'<'/PublisherID'>'<br/>
'<'/PublisherProperty'>'<br/>

【问题讨论】:

    标签: c# if-statement xml-parsing


    【解决方案1】:

    您可以构建一个集合并查看它是否在其中。

    if (new[] { "Channel", "QueueManager", "QueueServer" , "QueueName" }.Contains( node.FirstChild.InnerText)){ }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多