Check Enumerator values if present using LINQ

c#, dataset, linq, linq-to-objects

Solution

var enumValues = (
    from int val in Enum.GetValues(typeof(Test))
    select val
).ToArray();

If you just want to know if there are any such values, use `Any`:

var query = oDtEnum.AsEnumerable().Any(
    row => enumValues.Contains(row.Field<int>("ENUM_ID"))
);

If you need the values themselves:

var query = 
    from row in oDtEnum.AsEnumerable()
    where enumValues.Contains(row.Field<int>("ENUM_ID"))
    select row;

Problem

``` public enum Test { A = 0, B = 1, C = 2, D = 3, E = 4, F = 5, G = 6 } DataSet oDsEnum = new DataSet(); DataTable oDtEnum = new DataTable(); oDtEnum.Columns.Add(new DataColumn("ENUM_ID", typeof(int))); oDtEnum.Columns.Add(new DataColumn("ENUM_VALUE", typeof(int))); oDtEnum.Rows.Add(10, 1001); oDtEnum.Rows.Add(21, 1002); oDtEnum.Rows.Add(2, 1003); oDtEnum.Rows.Add(300, 1004); oDtEnum.Rows.Add(4, 1005); oDsEnum.Tables.Add(oDtEnum); oDsEnum.AcceptChanges(); ``` I want to check if the Column "ENUM_ID" of DataSet "oDsEnum" contains the value of the Enumerator "Test" for further operation using LINQ

Original source