c# Add some values at List

I write some code which do:

List<DataRow> rows=new <DataRow>();
foreach (DataRow dtRow in sqlRows)
{
    foreach (DataRow dtRowId in dttRows1)
    {
        if (Convert.ToInt32(dtRowId[0]) == Convert.ToInt32(dtRow[1]))
            rows.Add(dtParRow);
    }
}

Can I write it some more effective way? May be use LINQ? Or some other algorihtm?

P.S. sqlRows and dttRows1 is List. I grub it from table with query like this:"Select * from table name";

Jon Skeet
people
quotationmark

You could just use LINQ with a join, which would be more efficient than the nested approach:

var query = from dtRow in sqlRows
            join dtRowId in dttRows1
              on Convert.ToInt32(dtRow[1]) equals Convert.ToInt32(dtRowId[0])
            select ???; // dtParRow is unknown. Did you mean dtRow?
var list = query.ToList();

Note that if those values are already int values (so don't need parsing etc) then just cast instead:

var query = from dtRow in sqlRows
            join dtRowId in dttRows1
              on (int) dtRow[1] equals (int) dtRowId[0]
            select ???; // dtParRow is unknown. Did you mean dtRow?
var list = query.ToList();

Or use the Field<T> extension method (again, only if they're already int values which don't need converting):

var query = from dtRow in sqlRows
            join dtRowId in dttRows1
              on dtRow.Field<int>(1) equals dtRowId.Field<int>(0)
            select ???; // dtParRow is unknown. Did you mean dtRow?
var list = query.ToList();

people

See more on this question at Stackoverflow