Transform VB.net expression to C#

Hi,

Can u help me with this one, i have an expression built in VB.NET and works normally but i need to use it in C# and not works, this is the expression

(From d In dt
Group d By k1=d(“Nombre del elemento nominado”),k2=d(“ID de producto de crudo”) Into grp=Group
Let sm = grp.Sum(Function(r) CInt(r(“Barriles promedio por día nominados”).ToString)/total)
Select dtResult.Rows.Add({k1,k2,sm})
).CopyToDataTable

, is there any way to do what I need?. (invoke code doesn’t work for me in this one)

1 Like

@Carlos_Restrepo

The following tool will help you with easy conversion of code snippets from VB.NET to C# & vice versa:

Hope this helps,
Best Regards.

Thx for the answer, my expression is a LINQ C# so with this tool we can’t transform it.

Hi,

How about the following?

(from d in dt.AsEnumerable()
group d by Tuple.Create(d["Nombre del elemento nominado"],d["ID de producto de crudo"]) into grp
select dtResult.Rows.Add(new object[] { grp.Key.Item1,grp.Key.Item2,grp.Sum(r=>Int32.Parse(r["Barriles promedio por día nominados"].ToString())/total)})
).CopyToDataTable()

Regards,

(from d in dt.AsEnumerable()
            group d by new { k1 = d["Nombre del elemento nominado"].ToString(), k2 = d["ID de producto de crudo"].ToString() } into grp
            let sm = grp.Sum(r => Convert.ToInt32(r["Barriles promedio por día nominados"].ToString()) / total)
            select dtResult.Rows.Add(new object[] { grp.Key.k1, grp.Key.k2, sm })
).CopyToDataTable()

@Carlos_Restrepo

Really appreciate your feedback on the converter. You can try the following query:

var query = from d in dt.AsEnumerable()
            group d by new { k1 = d.Field<string>("Nombre del elemento nominado"), k2 = d.Field<int>("ID de producto de crudo") } into grp
            let sm = grp.Sum(r => Convert.ToInt32(r.Field<decimal>("Barriles promedio por día nominados")) / total)
            select dtResult.Rows.Add(new object[] { grp.Key.k1, grp.Key.k2, sm });
var result = query.CopyToDataTable();

Hope this helps,
Best Regards.

Thank you, it’s works for me!!!

Blessings!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.