Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

ResourceCandidateVectorView Class

Definition

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents a collection of ResourceCandidate objects.

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)
Inheritance
Object Platform::Object IInspectable ResourceCandidateVectorView
Attributes
Implements

Windows requirements

Requirements Description
Device family
Windows 10 (introduced in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)

Examples

This example is based on scenario 10 of the Application resources and localization sample. See the sample for the complete solution.

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

Remarks

Enumerating the collection in C# or Microsoft Visual Basic

A ResourceCandidateVectorView is enumerable, so you can use language-specific syntax such as foreach in C# to enumerate the items in the collection. The compiler does the type-casting for you and you won't need to cast to IEnumerable<ResourceCandidate> explicitly. If you do need to cast explicitly, for example if you want to call GetEnumerator, cast to IEnumerable<T> with a ResourceCandidate constraint.

Properties

Name Description
Size

Gets the number of ResourceCandidate objects in the set.

Methods

Name Description
First()

Returns an iterator to enumerate the items in the set of ResourceCandidate objects.

GetAt(UInt32)

Returns the ResourceCandidate at the specified index in the set.

GetMany(UInt32, ResourceCandidate[])

Returns the ResourceCandidate objects that start at the specified index in the set.

IndexOf(ResourceCandidate, UInt32)

Gets the index of a specified ResourceCandidate in the set.

Applies to

See also


Feedback

Was this page helpful?