private void AddPortableProfile(NetPortableProfileTable table, NetPortableProfile profile) { if (!profile.Name.StartsWith(NetPortableProfile.ProfilePrefix, StringComparison.OrdinalIgnoreCase)) { return; } var rawNumber = profile.Name.Substring(NetPortableProfile.ProfilePrefix.Length); int number; if (!int.TryParse(rawNumber, out number)) { return; } var profileFrameworks = new KeyValuePair <int, NuGetFramework[]>( number, profile.SupportedFrameworks.Select(f => VersionUtility.GetNuGetFramework( table, DefaultFrameworkNameProvider.Instance, f)).ToArray()); _profileFrameworks.Add(profileFrameworks); var profileOptionalFrameworks = new KeyValuePair <int, NuGetFramework[]>( number, profile.OptionalFrameworks.Select(f => VersionUtility.GetNuGetFramework( table, DefaultFrameworkNameProvider.Instance, f)).ToArray()); _profileOptionalFrameworks.Add(profileOptionalFrameworks); }