Wählen Sie Elemente in der Liste aus, die mit einer Schnittstelle übereinstimmen

Ich habe die folgenden Schnittstellen definiert:

public interface IStep 
{
    string Name { get; set; }
}

public interface IStepBuildDataSet : IStep
{
    DataSet Data { get; set; }
}

public interface IStepBuildFile : IStep
{
    byte File { get; set; }
}

Ich habe Code, der diese Schnittstellen verwendet:

public List<IStep> Steps { get; set; }

public void RunJob()
{
  // pseudo code, need to update:
  IStepBuildDataSet buildDataSet = Steps.Single(s => s is IStepBuildDataSet);
  IStepBuildFile buildFile = Steps.Single(s => s is IStepBuildFile);

  // call methods on Steps
}

Was ist die richtige Syntax, um den Pseudo-Code zu ersetzen? Ich möchte den Schritt in der Liste erhalten, der eine certian Schnittstelle implementiert. Die Liste enthält jeweils nur einen Eintrag.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage