Если вы не знаете во время компиляции, какой тип находится в вашем словаре, вы можете использовать тег dynamic
(переработав пример Патрика):
public dynamic GetValueOrDefault(string key)
{
if (this.dictionary.TryGetValue(key, out object o))
{
return o;
}
return null;
}
Вариант использования:
int val;
val = dict.GetValueOrDefault("Brightness");
В MySQL
:
SELECT l.*
FROM (
SELECT cid,
COALESCE(
(
SELECT id
FROM mytable li
WHERE li.cid = dlo.cid
AND li.score >= 20
ORDER BY
li.cid, li.id
LIMIT 1, 1
), CAST(0xFFFFFFFF AS DECIMAL)) AS mid
FROM (
SELECT DISTINCT cid
FROM mytable dl
) dlo
) lo, mytable l
WHERE l.cid >= lo.cid
AND l.cid <= lo.cid
AND l.id <= lo.mid
AND l.score >= 20
Разве это не должно быть так просто, как **
SELECT CID, PID, Score, SortKey
FROM T1
WHERE score >= 20
ORDER BY CID, Sortkey
**
или я что-то упустил?