tags:

views:

4906

answers:

2

Hi!

How do I loop into all the resources in the resourcemanager?

Ie: foreach (string resource in ResourceManager) //Do something with the recource.

Thanks

+7  A: 

Use ResourceManager.GetResourceSet() for a list of all resources for a given culture. The returned ResourceSet implements IEnumerable (you can use foreach).


To answer Nico's question: you can count the elements of an IEnumerable by casting it to an IEnumerable and use the Enumerable.Count<T>() extension method, which is new in C# 3.5:

using System.Linq;

...

var resSet = ...GetResourceSet(..);
var resCount = (resSet as IEnumerable<object>).Count();
VVS
how the hell do I get a count for it?
Nico
@Nico: IEnumerable's don't implement a Count property but you can iterate the entries and count them. Alternatively you can cast the RessourceSet to IEnumerable<object> and use the Count() extension method which is new in C# 3.5: http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx
VVS
A: 

I wonder why would you like to loop through all of the resources.

Anyway, ResourceManager needs to be instantiated giving it a Type or the base name where to lookup for resources. Then you will be able to retrieve a ResourceSet but for a given CultureInfo, ergo if you want to obtain all the resources for a given `ResourceManager

Leandro López