I need to simplify the below code as well LINQ query:
var data = from linq_row in trend_data.AsEnumerable()
group linq_row by linq_row["questionnaire_uniquename"] into g
select new
{
questionnaire_uniquename = g.First<DataRow>()["questionnaire_uniquename"].ToString(),
question_name = g.First<DataRow>()["question_name"].ToString(),
question_score_type = g.First<DataRow>()["question_score_type"].ToString(),
sparkline_data = g.Select(s => s["trend_score"].ToString()).ToArray()
}; ;
int rowspan = 2;
Based on some condition, I am adding just filtering to an existing query and modifying the select query here. Instead of selecting "question_name", I want to select "response_label" from data table.
if (criteria.CorporateSummaryExpand == "1")
{
data =
from linq_row in trend_data.AsEnumerable()
group linq_row by linq_row["questionnaire_uniquename"] into g
where g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP5000]"
&& g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP5008]"
&& g.First<DataRow>()["questionnaire_uniquename"].ToString() != "[Questionnaire].[Questionnaire].[Question].&[OFSP]&[OFSP1130]"
select new
{
questionnaire_uniquename = g.First<DataRow>()["questionnaire_uniquename"].ToString(),
question_name = g.First<DataRow>()["response_label"].ToString(),
question_score_type = g.First<DataRow>()["question_score_type"].ToString(),
sparkline_data = g.Select(s => s["trend_score"].ToString()).ToArray()
};
rowspan = 4;
}