Unfortunately in this case you need to iterate over the whole collection and select the items that match your criteria (so not much use of the dictionary itself):
public IList<int> FindValues(int row, int col)
{
myDictionary
.Where(item => MatchKey(item.Key, row, col))
.Select(item => item.Value)
.ToList();
}
public bool MatchKey(string key, int row, int col)
{
var splitKey = key.Split();
return splitKey[1] == row.ToString() && splitKey[2] == col.ToString();
// or match the key according to your logic
}
Though if you need to query by row and column often, then it's better to build a different data structure first. Maybe
Dictionary<Coord, IList<int>> myDict;
Where Coord is a class/struct (and overrides Equals, GetHashCode)
class Coord
{
public int Row { get; set; }
public int Column { get; set; }
}