[英]How to perform transformations on strings in LINQ?
I have the below query that selects rows from a datatable called dtRows. 我有以下查询,该查询从称为dtRows的数据表中选择行。 The dtRows contains 2 columns FieldId and FieldValue and the FieldId contains values as below. dtRows包含2列FieldId和FieldValue,而FieldId包含以下值。 When I select the FieldId's I need to strip the first two characters and convert the last character to a different string. 当我选择FieldId时,我需要剥离前两个字符并将最后一个字符转换为其他字符串。 For example, 1_3_1 should be 3_FirstName and 1_3_2 should be 3_LastName and 1_3_3 should be 3_MiddleName. 例如,1_3_1应该是3_FirstName,而1_3_2应该是3_LastName,而1_3_3应该是3_MiddleName。 Anyone has any suggestions?? 有人有什么建议吗? Thanks a lot for any ideas! 非常感谢您的任何想法!
FieldId Values: FieldId值:
1_1_1 1_1_1
1_1_2 1_1_2
1_1_3 1_1_3
1_2_1 1_2_1
1_2_2 1_2_2
1_2_3 1_2_3
1_3_1 1_3_1
1_3_2 1_3_2
1_3_3 1_3_3
var Names = from row in dtRows.AsQueryable()
where Convert.ToInt16(row.Field<string>("FieldId").Substring(2)) == prefix
select new
{
fieldId =
fieldValue = row.Field<string>("FieldValue")
};
I would write a function to calculate the different strings, and call it: 我将编写一个函数来计算不同的字符串,然后调用它:
var Names = from row in dtRows.AsQueryable()
let id = row.Field<string>("FieldId")
where Convert.ToInt16(id.Substring(2)) == prefix
select new
{
fieldId = ConvertString(id),
fieldValue = row.Field<string>("FieldValue")
};
And 和
private string ConvertString(string original)
{
// implementation left as an exercise
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.