mahalex / MatFileHandler

MATLAB .mat-file reading/writing API for .NET Standard
MIT License
40 stars 12 forks source link

Testing for variables #19

Open miloush opened 3 years ago

miloush commented 3 years ago

There doesn't seem to be an easy way to check if a variable exists in a given file, and unfortunately the IMatFile indexer throws an exception when a variable does not exist. It would be useful to have a more tolerant way to access variables, such as one of the following:

mahalex commented 3 years ago

Thanks for creating the issue! The current way to check if a variable exists is go through the IMatFile.Variables array and test the Name property of the elements, which is quite ugly. I will go with the second proposed solution. Another approach would be to inherit IMatFile from IReadOnlyDictionary<string, IVariable> or IDictionary<string, IVariable>, but there are some problems associated with that: I feel like it should be a read-only dictionary, but there is already a setter on the indexer for some reason. I guess we can do it when (if) we think about the next major version with breaking changes to the API.

mahalex commented 3 years ago

Version 1.4.0-beta1 published on nuget.org contains this change. Feel free to test it.

miloush commented 3 years ago

Great, working for me!

cbergemann commented 2 years ago

It would be very usefull to have the same interface for IStructureArray - currently you need to iterate over the FieldNames property. Exposing the TryGet method of the underlying Dictionary would help.