Condividi tramite


ResourceCandidateVectorView Classe

Definizione

Rappresenta una raccolta di oggetti ResourceCandidate .

public ref class ResourceCandidateVectorView sealed : IIterable<ResourceCandidate ^>, IVectorView<ResourceCandidate ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ResourceCandidateVectorView final : IIterable<ResourceCandidate>, IVectorView<ResourceCandidate>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ResourceCandidateVectorView : IEnumerable<ResourceCandidate>, IReadOnlyList<ResourceCandidate>
Public NotInheritable Class ResourceCandidateVectorView
Implements IEnumerable(Of ResourceCandidate), IReadOnlyList(Of ResourceCandidate)
Ereditarietà
Object Platform::Object IInspectable ResourceCandidateVectorView
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Questo esempio si basa sullo scenario 10 delle risorse dell'applicazione e dell'esempio di localizzazione. Vedere l'esempio per la soluzione completa.

private void Scenario10Button_Show_Click(object sender, RoutedEventArgs e)
{
    Button b = sender as Button;
    if (b != null)
    {
        // Use a cloned context for this scenario so that qualifier values set
        // in this scenario don't impact behavior in other scenarios that
        // use a default context for the view (crossover effects between
        // the scenarios will not be expected).
        var context = ResourceContext.GetForCurrentView().Clone();

        var selectedLanguage = Scenario10ComboBox_Language.SelectedValue;
        var selectedScale = Scenario10ComboBox_Scale.SelectedValue;
        var selectedContrast = Scenario10ComboBox_Contrast.SelectedValue;
        var selectedHomeRegion = Scenario10ComboBox_HomeRegion.SelectedValue;

        if (selectedLanguage != null)
        {
            context.QualifierValues["language"] = selectedLanguage.ToString();
        }
        if (selectedScale != null)
        {
            context.QualifierValues["scale"] = selectedScale.ToString();
        }
        if (selectedContrast != null)
        {
            context.QualifierValues["contrast"] = selectedContrast.ToString();
        }
        if (selectedHomeRegion != null)
        {
            context.QualifierValues["homeregion"] = selectedHomeRegion.ToString();
        }
        Scenario10_SearchMultipleResourceIds(context, new string[] { "LanguageOnly", "ScaleOnly", "ContrastOnly", "HomeRegionOnly", "MultiDimensional" });
    }
}

void Scenario10_SearchMultipleResourceIds(ResourceContext context, string[] resourceIds)
{
    this.Scenario10TextBlock.Text = "";
    var dimensionMap = ResourceManager.Current.MainResourceMap.GetSubtree("dimensions");

    foreach (var id in resourceIds)
    {
        NamedResource namedResource;
        if (dimensionMap.TryGetValue(id, out namedResource))
        {
            var resourceCandidates = namedResource.ResolveAll(context);
            Scenario10_ShowCandidates(id, resourceCandidates);
        }
    }
}

void Scenario10_ShowCandidates(string resourceId, IReadOnlyList<ResourceCandidate> resourceCandidates)
{
    // Print 'resourceId', 'found value', 'qualifer info', 'matching condition'
    string outText = "resourceId: dimensions\\" + resourceId + "\r\n";
    int i = 0;
    foreach (var candidate in resourceCandidates)
    {
        var value = candidate.ValueAsString;
        outText += "    Candidate " + i.ToString() + ":" + value + "\r\n";
        int j = 0;
        foreach (var qualifier in candidate.Qualifiers)
        {
            var qualifierName = qualifier.QualifierName;
            var qualifierValue = qualifier.QualifierValue;
            outText += "        Qualifer: " + qualifierName + ": " + qualifierValue + "\r\n";
            outText += "        Matching: IsMatch (" + qualifier.IsMatch.ToString() + ")  " + "IsDefault (" + qualifier.IsDefault.ToString() + ")" + "\r\n";
            j++;
        }
        i++;
    }

    this.Scenario10TextBlock.Text += outText + "\r\n";
}

Commenti

Enumerazione della raccolta in C# o Microsoft Visual Basic

ResourceCandidateVectorView è enumerabile, quindi è possibile usare una sintassi specifica del linguaggio, ad esempio foreach in C# per enumerare gli elementi nella raccolta. Il compilatore esegue il cast di tipi per l'utente e non è necessario eseguire il cast IEnumerable<ResourceCandidate> in modo esplicito. Se è necessario eseguire il cast in modo esplicito, ad esempio se si vuole chiamare GetEnumerator, eseguire il cast in IEnumerable<T> con un vincolo ResourceCandidate .

Proprietà

Size

Ottiene il numero di oggetti ResourceCandidate nel set.

Metodi

First()

Restituisce un iteratore per enumerare gli elementi nel set di oggetti ResourceCandidate .

GetAt(UInt32)

Restituisce ResourceCandidate nell'indice specificato nel set.

GetMany(UInt32, ResourceCandidate[])

Restituisce gli oggetti ResourceCandidate che iniziano all'indice specificato nel set.

IndexOf(ResourceCandidate, UInt32)

Ottiene l'indice di un oggetto ResourceCandidate specificato nel set.

Si applica a

Vedi anche