首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Linq的Recode数据表列

带有Linq的Recode数据表列
EN

Stack Overflow用户
提问于 2014-08-26 14:52:32
回答 2查看 39关注 0票数 0

我的SQL服务器中有一个表,它看起来像:

代码语言:javascript
复制
|Calendarweek| Hours|
|1           |4     |
|2           |5     |

..。

我把这个表放到一个数据集中,然后用linq查询它。现在的问题是,在我们的业务逻辑中,第一周是4月份的第一周。我有一个方法,在四月的第一个星期为我找到一个特定年份的第一周。我现在要做的是重新计算宪兵周的费用。所以今年的Calendarweek 14 = 1, Calendarweek 15 = 2等等。

我检查了所有的Linq扩展,但是找不到重新编码的方法。有人能帮我吗?

首先,我可以将查询简化为:

代码语言:javascript
复制
dim query = from row in datatable1.AsEnumerable
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-26 15:01:56

如果您已经知道第一周是14周,为什么不能简单地将14添加到表中的Calendarweek-value中呢?

代码语言:javascript
复制
Dim query = From row In datatable1.AsEnumerable
            Let Calendarweek = row.Field(Of Int32)("Calendarweek")
            Let Hours = row.Field(Of Int32)("Hours")
            Select x = New With {
                .Calendarweek = Calendarweek,
                .Hours = Hours,
                .RealWeek = Calendarweek + 14
            }

用给出正确值的方法替换14 (不太清楚)。

票数 1
EN

Stack Overflow用户

发布于 2014-08-26 15:01:28

我会使用一个匿名类型来调用一个方法。

代码语言:javascript
复制
dim query = from row in datatable1.AsEnumerable
            select new
            {
                Hours = row.Hours,
                Calendarweek = MyConversionMethod(row.Calendarweek)
            };

您需要将row.Hours更改为datatable使用的任何列,我认为是命名列吗?所以也许是row["Hours"]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25508905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档