いつも勉強させていただいています。本日は皆様のお知恵を拝借させていただければと思って
質問いたします。

public class TestResult {
    public string Kamoku;
    public int Tensu;
}

public class Grade {
    public int Rank;
    public List<TestResult> result;
}

public class Peron {
    public int Id;
    public string Name;
    public Dictionary<string, Grade> dic;
}

上記のようなクラスがある場合に、Tensuの最大値を取得したいのですが、どのように書けば簡潔に取得できますでしょうか。

Person personalData = new Person() などして各プロパティやディクショナリには
値を設定済みという前提ですが、

int MaxTensu = personalData.dic.Values.Max(x => x.result.Max(y => y.Tensu));

この書き方では「シーケンスに要素が要素が含まれていません」でエラーになりました。
↓ のような書き方にするべきでしょうか。よろしくお願いいたします。

int max = 0;
foreach (Grade g in personalData.dic.Values) {
    int i = g.result.Max(x => x.Tensu);
    if (max < i) {
        max = i;
    }
}