score:0

the list myitems contains items of type object where each this item is actually object[] so we need to cast to object[] first and then filter and select based on the searched certain number.

string certainnumber = "1";
var myids = myitems
    .where(o => ((object[]) o)[1].tostring() == certainnumber)
    .select(o => ((object[]) o)[0].tostring());

the equality operator on strings performs an ordinal (case-sensitive and culture-insensitive) comparison so change it in the where... if you need some different kind of comparison in your case.

score:0

got it working and wanted to share the information:

var myids = 
(from item in myitems.cast<object[]>()
  select new
  { id = item[0], number = (string)item[1] }
)
.where(x => x.number == filtercondition)
.select(x => (string)x.id)
.tolist();

score:3

use select() and where()

bool issatisfyingnumber(string number) {
    // true if number satisfies some criteria
}

list<string> matchingids = myitems
    .where(item => issatisfyingnumber(item[1].tostring()))
    .select(item => item[0].tostring())
    .tolist();

Related Query

More Query from same tag