FirstOrDefault不接受参数



我将读取条形码放在单独的方法中,该方法读取条形码并将其放在名为barcode的文本框中。并创建了一个按钮,将加载与该条形码对应的数据,但面临问题

private void Load_Click(object sender, RoutedEventArgs e) 
{
    var str = @"<Books xmlns=""""> <book Barcode=""780672318863""><Serial>11</Serial> 
                           <name>abc</name> <detail>Fantasy</detail></book>
                           <book Barcode=""780672318864""><Serial>12</Serial>
                           <name>abc</name><detail>Fantasy1</detail></book></Books>";
    var strBarcode = barcode.Text;
    MessageBox.Show(strBarCode);
    XDocument docX = XDocument.Parse(str);
    var s = docX.Descendants("book").FirstOrDefault(a => a.Attribute("Barcode").Value == strBarcode);
    spnl.DataContext = s; 
}

现在消息框说strBarCode有正确的值,但它没有显示在程序和S值等于零另一方面,如果我直接把"780672318863"放在strBarcode的位置,它会正确显示值
谁能告诉我我哪里错了?

不可复制。

我用docX.Descendants("book")...运行你的代码,它产生正确的元素。

你可以试试

  string  strBarcode = barcode.Text.Trim();

,但其余的你只需要在调试器中看看。

最新更新