c# - 在 Linq 的数据表数据行中选择大小写

标签 c# linq

我有一个 DataTable,它有 3 列,如 IsMonday、Istuesday 和 IsWednesday,它们都是字符串字段,其中包含 Y 和 N 等数据。我想获取每一行并以字符串形式返回结果。我想要得到的是,

    if a row is Y,N,Y then the output will be 1 3,two is blank since it is N
    if a row is N,N,Y then the output will be   3,one and two is blank since it is N

像这样,使用 Linq case 语句或任何其他方式的任何想法

最佳答案

考虑到您有一个从数据库返回的行集合,看起来与此列表类似。

var entity = new List<Entity>()
 {
 new Entity(){ IsMonday = "Y", IsTuesday = "N", IsWednesday = "Y"},
 new Entity() { IsMonday = "N", IsTuesday = "N", IsWednesday = "Y"},
 new Entity() { IsMonday = "Y", IsTuesday = "Y", IsWednesday = "N"}
 };

要获得预期的结果,您可以使用类似这样的代码

 foreach (var e in entity)
 {
   var a = e.IsMonday.Equals("y", StringComparison.OrdinalIgnoreCase) ? "1" : " ";
   var b = e.IsTuesday.Equals("y", StringComparison.OrdinalIgnoreCase) ? "2" : " ";
   var c = e.IsWednesday.Equals("y", StringComparison.OrdinalIgnoreCase) ? "3" : " ";
   var s = String.Format("{0} {1} {2}", a, b, c);
 }

这里变量“s”包含结果字符串。

关于c# - 在 Linq 的数据表数据行中选择大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367827/

相关文章:

c# - 极简 LINQ 方法 - System.NullReferenceException

c# - 将 TimeSpan 格式化为 mm :ss for positive and negative TimeSpans

c# - x64 的 form_load 中忽略的异常

c# - 文件名未传递给 main

c# - 在 Dynamic Linq 中使用 Any() 和 Count()

c# - 在运行时创建具有通用接口(interface)的通用类型

c# - 从 global.asax 连接到 default.aspx 上的函数

c# - 从基本 Controller 获取操作过滤器列表

c# - 嵌套列表上的 Linq C#

.net - 关于学习哪些.NET ORM的一些建议