다음을 통해 공유


ResourceCandidateVectorView 클래스

정의

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)
상속
Object Platform::Object IInspectable ResourceCandidateVectorView
특성
구현

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

이 예제는 애플리케이션 리소스 및 지역화 샘플의 시나리오 10을 기반으로 합니다. 전체 솔루션은 샘플을 참조하세요.

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";
}

설명

C# 또는 Microsoft Visual Basic에서 컬렉션 열거

ResourceCandidateVectorView는 열거 가능하므로 C#의 foreach 와 같은 언어별 구문을 사용하여 컬렉션의 항목을 열거할 수 있습니다. 컴파일러는 형식 캐스팅을 수행하며 명시적으로 로 캐스팅 IEnumerable<ResourceCandidate> 할 필요가 없습니다. 예를 들어 GetEnumerator를 호출하려는 경우 명시적으로 캐스팅해야 하는 경우 ResourceCandidate 제약 조건을 사용하여 IEnumerable<T>로 캐스팅합니다.

속성

Size

집합의 ResourceCandidate 개체 수를 가져옵니다.

메서드

First()

ResourceCandidate 개체 집합의 항목을 열거하는 반복기를 반환합니다.

GetAt(UInt32)

집합의 지정된 인덱스에서 ResourceCandidate 를 반환합니다.

GetMany(UInt32, ResourceCandidate[])

집합의 지정된 인덱스에서 시작하는 ResourceCandidate 개체를 반환합니다.

IndexOf(ResourceCandidate, UInt32)

집합에서 지정된 ResourceCandidate 의 인덱스 를 가져옵니다.

적용 대상

추가 정보