对于每个循环到 txt

本文关键字:txt 循环 于每个 | 更新日期: 2023-09-27 18:32:52

我的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语句中的每个项目执行此操作?

对于每个循环到 txt

在此处查看有关从列表中编写 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