【问题标题】:ForEach Loop to txtForEach 循环到 txt
【发布时间】:2016-02-02 03:15:51
【问题描述】:

我的foreach 循环遍历一个列表,我需要循环以如下形式将自身写入文本文件:

[
  {
    "Platillo": "Pozole",
    "PDV": "Restaurante",
    "Turno": "matutino",
    "PV": "$45.00",
    "1": "1",
    "2": "1"
  },]

我的 foreach 循环此刻填充了一个 html 表。

 foreach (var item in Model)
{
    var total = 0;
    decimal costo = 0;

    for (int i = 1; i <= 31; i++)
    {
        var value = 0;
        if (item.Fecha.Day == i) { value = item.Cantidad; costo = costo + item.Total; }
        total += value;
    }
    <tr>
        <td class="descripcion">@item.Descripcion</td>
        <td class="pdv">@item.Pdv</td>
        <td class="pdv">@item.Rid</td>
        <td>@((costo / (total + 1)).ToString("C"))</td>
        @for (int i = 1; i <= 31; i++)
        {
            var value = 0;
            int month = item.Fecha.Month;
            if (item.Fecha.Day == i) { value = item.Cantidad; }

        }
        <td>@total</td>
        <td>@(((costo / (total + 1)) * total).ToString("C"))</td>

如何在列中执行此操作,并为我的foreach 语句中的每个项目执行此操作?

【问题讨论】:

  • 如果您有与 JSON 匹配的对象,那么只需序列化这些对象的列表?
  • @crashmstr 我做了一个编辑,以一种相当出乎意料的方式消除了更改,我正在尝试恢复它。很抱歉造成混乱。
  • 我可以序列化列表,但我在我的 foreach 语句中从该集合中对我的数据执行了一些代码,这就是为什么我正在寻找一种方法将我的 foreach 结果提供给一个 txt 评估者,该列表与普通列表数据
  • "to a txt"...你想要文本还是 JSON?如果你想要 JSON,最简单的方法就是将数据建模成你想要的格式,然后序列化。
  • 我想要一个 .txt 文件,我可以让它序列化列表,但我想在将列表的数据添加到我的 foreach 循环中的文件之前添加和修改列表的数据,这就是我试图获取的原因一种将 foreach 代码以列或类似的形式写入 txt 的方法

标签: c# html database file foreach


【解决方案1】:

从此处的列表中查看关于编写 JSON 的非常相似问题的答案: https://stackoverflow.com/a/16921677/2939759

编辑: 链接的答案建议使用 Json.Net - 这是提供的代码示例(感谢 Liam 的出色回答):

List<data> _data = new List<data>();
_data.Add(new data()
{
    Id = 1,
    SSN = 2,
    Message = "A Message"
});
string json = JsonConvert.SerializeObject(_data.ToArray());

//write string to file
System.IO.File.WriteAllText (@"D:\path.txt", json);

您真正需要做的就是将 foreach 循环添加到那里提供的代码示例中

额外编辑:回想起来(可能为时已晚)我想我误解了阿图罗的问题。我对此的解释是,在 ASP.NET MVC 视图中发生了一堆业务逻辑,Arturo 希望在可以将其写入文件的地方进行相同的处理,这在模型中可能更有意义.它的代码可能看起来非常相似,可能如下所示。请注意,我不会说西班牙语,也没有尝试编译这个...

List<data> _data = new List<data>();

foreach (var item in Model)
{
    var total = 0;
    decimal costo = 0;

    for (int i = 1; i <= 31; i++)
    {
        var value = 0;
        if (item.Fecha.Day == i) { value = item.Cantidad; costo = costo + item.Total; }
        total += value;
    }

    _data.Add(new data()
    {
        Descripcion = item.Descripcion,
        Pdv = item.Pdv,
        Rid = item.Rid,
        Costo = ((costo / (total + 1)).ToString("C")),
        Total = total,
        WhateverThisIs = (((costo / (total + 1)) * total).ToString("C"))
    });
}

string json = JsonConvert.SerializeObject(_data.ToArray());
System.IO.File.AppendAllText(@"D:\path.txt", json); //make sure to use append

【讨论】:

  • foreach 循环在管理员的编辑中被删除,但我使用 foreach 循环填充 html 但我希望它直接进入文件
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 2016-09-26
  • 2012-07-19
  • 2018-01-14
  • 1970-01-01
  • 2020-02-19
相关资源
最近更新 更多