Remove LINQ Count method uses (#13545)

This commit is contained in:
xtqqczze 2020-11-11 17:39:59 +00:00 committed by GitHub
parent 4d2965af29
commit 1386d0054a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 29 deletions

View file

@ -1076,8 +1076,7 @@ namespace Microsoft.PowerShell.Commands
CultureInfo.InvariantCulture,
Modules.RemoteDiscoveryFailedToGenerateProxyForRemoteModule,
remoteModuleName);
int numberOfLocallyCreatedFiles = RemoteDiscoveryHelper.InvokePowerShell(powerShell, this, errorMessageTemplate, this.CancellationToken).Count();
if (numberOfLocallyCreatedFiles == 0)
if (!RemoteDiscoveryHelper.InvokePowerShell(powerShell, this, errorMessageTemplate, this.CancellationToken).Any())
{
return null;
}

View file

@ -3290,9 +3290,14 @@ namespace System.Management.Automation.Runspaces
#region add members from TypeData
private static void ProcessMembersData(ConcurrentBag<string> errors, string typeName, IEnumerable<TypeMemberData> membersData, PSMemberInfoInternalCollection<PSMemberInfo> membersCollection, bool isOverride)
private static void ProcessMembersData(
ConcurrentBag<string> errors,
string typeName,
Dictionary<string, TypeMemberData> membersData,
PSMemberInfoInternalCollection<PSMemberInfo> membersCollection,
bool isOverride)
{
foreach (TypeMemberData typeMember in membersData)
foreach (TypeMemberData typeMember in membersData.Values)
{
typeMember.Process(errors, typeName, membersCollection, isOverride);
}
@ -3448,12 +3453,12 @@ namespace System.Management.Automation.Runspaces
private static void ProcessStandardMembers(
ConcurrentBag<string> errors,
string typeName,
IEnumerable<TypeMemberData> standardMembers,
IEnumerable<PropertySetData> propertySets,
Dictionary<string, TypeMemberData> standardMembers,
List<PropertySetData> propertySets,
PSMemberInfoInternalCollection<PSMemberInfo> membersCollection,
bool isOverride)
{
int newMemberCount = standardMembers.Count() + propertySets.Count();
int newMemberCount = standardMembers.Count + propertySets.Count;
// If StandardMembers do not exists, we follow the original logic to create the StandardMembers
if (membersCollection[PSStandardMembers] == null)
@ -3678,7 +3683,7 @@ namespace System.Management.Automation.Runspaces
string typeName = typeData.TypeName;
Dbg.Assert(!string.IsNullOrEmpty(typeName), "TypeData class guarantees the typeName is not null and not empty");
var propertySets = new Collection<PropertySetData>();
var propertySets = new List<PropertySetData>();
if (typeData.DefaultDisplayPropertySet != null)
{
propertySets.Add(typeData.DefaultDisplayPropertySet);
@ -3709,7 +3714,7 @@ namespace System.Management.Automation.Runspaces
if (typeData.Members.Count > 0)
{
typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(collectionSize));
ProcessMembersData(errors, typeName, typeData.Members.Values, typeMembers, typeData.IsOverride);
ProcessMembersData(errors, typeName, typeData.Members, typeMembers, typeData.IsOverride);
foreach (var memberName in typeData.Members.Keys)
{
@ -3724,7 +3729,7 @@ namespace System.Management.Automation.Runspaces
typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1));
}
ProcessStandardMembers(errors, typeName, typeData.StandardMembers.Values, propertySets, typeMembers, typeData.IsOverride);
ProcessStandardMembers(errors, typeName, typeData.StandardMembers, propertySets, typeMembers, typeData.IsOverride);
}
if (typeData.TypeConverter != null)

View file

@ -734,34 +734,38 @@ namespace Microsoft.PowerShell.Commands
public static class GetHelpCodeMethods
{
/// <summary>
/// Verifies if the InitialSessionState of the current process.
/// </summary>
/// <returns></returns>
/// Checks whether the default runspace associated with the current thread has the standard Get-Help cmdlet.
/// <summary>
/// <return>True if Get-Help is found, false otherwise.</return>
private static bool DoesCurrentRunspaceIncludeCoreHelpCmdlet()
{
InitialSessionState iss =
System.Management.Automation.Runspaces.Runspace.DefaultRunspace.InitialSessionState;
if (iss != null)
InitialSessionState iss = Runspace.DefaultRunspace.InitialSessionState;
if (iss is null)
{
IEnumerable<SessionStateCommandEntry> publicGetHelpEntries = iss
.Commands["Get-Help"]
.Where(entry => entry.Visibility == SessionStateEntryVisibility.Public);
if (publicGetHelpEntries.Count() != 1)
return false;
}
Collection<SessionStateCommandEntry> getHelpEntries = iss.Commands["Get-Help"];
SessionStateCommandEntry getHelpEntry = null;
for (int i = 0; i < getHelpEntries.Count; ++i)
{
if (getHelpEntries[i].Visibility is not SessionStateEntryVisibility.Public)
{
continue;
}
// If we have multiple entries for Get-Help,
// our assumption is that the standard Get-Help is not available.
if (getHelpEntry is not null)
{
return false;
}
foreach (SessionStateCommandEntry getHelpEntry in publicGetHelpEntries)
{
SessionStateCmdletEntry getHelpCmdlet = getHelpEntry as SessionStateCmdletEntry;
if ((getHelpCmdlet != null) && (getHelpCmdlet.ImplementingType.Equals(typeof(GetHelpCommand))))
{
return true;
}
}
getHelpEntry = getHelpEntries[i];
}
return false;
return getHelpEntry is SessionStateCmdletEntry getHelpCmdlet
&& getHelpCmdlet.ImplementingType == typeof(GetHelpCommand);
}
/// <summary>