【问题标题】:Joining multiple rows from datatables into arrays将数据表中的多行连接到数组中
【发布时间】:2016-06-17 10:44:33
【问题描述】:

我正在从两个表创建一个数据表,并从该数据表中尝试调用所有 ExpDates 和所有 IncDates,然后将它们连接在一起。我的通话代码不正确,因为每个日期都被打印了很多次。 这是代码

 var stringArr = Dt.AsEnumerable().Select(r => r.Field<string>("IncDate")).ToArray();
var stringArr2 = Dt.AsEnumerable().Select(r => r.Field<string>("ExpDate")).ToArray();

并尝试加入他们,我正在使用

 var res = stringArr.Concat(stringArr2).ToArray();

日期以 dd/MM/yyyy 格式存储,但我的通话有问题。 提前喝彩

【问题讨论】:

  • 可能有助于显示您期望的输出和实际得到的结果

标签: c# sql asp.net datatable


【解决方案1】:
public class Dates
{
public string IncDate;
public string ExpDate;
}

    Dates[] result =  Dt.AsEnumerable()
    .Select(r => new Dates{IncDate = r.Field<string>("IncDate"), ExpDate = r.Field<string>("ExpDate") })
    .ToArray();

【讨论】:

  • 谢谢,但它说“AsEnumerable 在当前上下文中不存在”
  • 然后删除它;)
  • 它现在说“不可调用的成员 'select' 不能像方法一样使用”lol
  • ooooppps 我犯了一个严重的错误,现在检查代码。
  • 谢谢,但最后一个查询,当我尝试将其添加到我的图表时,它说“无法隐式转换类型'[]' 到 'string[] '
【解决方案2】:

你也可以用 zip 做到这一点

var joinedValues = stringArr.Zip(stringArr2,(l,r)=>new{IncDate = l, ExpDate=r})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多