C# Language Partecipare a più chiavi

Esempio

  PropertyInfo[] stringProps = typeof (string).GetProperties();//string properties
  PropertyInfo[] builderProps = typeof(StringBuilder).GetProperties();//stringbuilder properties
    
    var query =
        from s in stringProps
        join b in builderProps
            on new { s.Name, s.PropertyType } equals new { b.Name, b.PropertyType }
        select new
        {
            s.Name,
            s.PropertyType,
            StringToken = s.MetadataToken,
            StringBuilderToken = b.MetadataToken
        };

Si noti che i tipi anonimi in join sopra devono contenere le stesse proprietà poiché gli oggetti sono considerati uguali solo se tutte le loro proprietà sono uguali. Altrimenti la query non verrà compilata.