【问题标题】:C# - How to iterate through a list of lists [closed]C# - 如何遍历列表列表[关闭]
【发布时间】:2017-12-10 16:32:15
【问题描述】:

我有课--

public class AccountNumber
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string AccountNumber_RecordID { get; set; }
    public string AccountNumber_SegmentLength { get; set; }
    public string AccountNumber_Number { get; set; }

}

我正在使用 LINQ to XML 来获取列表 --

List<AccountNumber> accNum = 
 (from p in xmlDocument.Descendants("AccountNumber")                                      
  select new AccountNumber
  {
      AccountNumber_RecordID = (string)p.Element("RecordID").Value,
      AccountNumber_SegmentLength = (string)p.Element("SegmentLength").Value,
      AccountNumber_Number = (string)p.Element("Number").Value
  }).ToList();

我有一个从 AccountNumber 类创建的 SQLite 数据库。我想在更新语句中使用整个列表。但是我如何遍历列表?

我想要这样的东西,但不知道如何实现。

foreach accNum
        {
               db.Insert(accNum); 
        }

【问题讨论】:

  • 您没有列表列表。您要的是基本的foreach 循环还是需要一个列表的Insert 方法?
  • 如果我使用 foreach (var in accNum) { some code } 那么列表 accNum 中的每个项目都会被解析。有没有办法可以通过整个列表
  • 你很接近...foreach (var x in accNum).
  • @smaya:您可以将整个列表传递给任何接受列表的函数,就像任何其他参数一样。
  • AccountNumber 不是一个列表。这是一堂课。这就是您所说的“列表列表”吗?

标签: c# xml linq sqlite sqlite-net


【解决方案1】:

用foreach关闭,如下:

    foreach (var acc in accNum)
    {
        db.Add(acc); 
    }
    db.SaveChanges();

不要忘记保存更改。

【讨论】:

  • 但这会一次获取整个列表还是只获取一个元素?在第一种情况下,acc 不会只保留 AccountNumber_RecordID 吗??
  • @smaya 与其坐在那里用关于代码可能做什么的鬼故事吓唬自己,不如运行代码,看看它做了什么。
  • accNum 已经是一个列表(您在查询中调用了 ToList())-此答案中的代码只是迭代该列表(已从数据库中检索)
  • @smaya:你完全误解了列表和对象。 foreach 为您提供列表中的每个对象。
猜你喜欢
  • 2019-12-30
  • 1970-01-01
  • 2021-03-02
  • 2021-06-07
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多