DataTable: better way to find row based on a column value

I currently have a project where I have a lot of setup and balancing data in data tables, as I generally quite like them. Then I use gameplay tags to access things.

When I want to access a certain row, I currently go through:

Get Data Table Row Names → For Each → Get Data Table Row → Compare Tags

This feels quite inefficient to me (from a pure scripting perspective → I need a lot of nodes | actual performance I am not that concerned over right now), but I did not really find any other way to do that online. As I start to use this exact setup now actually quite a lot, it feels a bit … wrong. (and making a function out of it does not really pay off for me I think, as I would need a unique one for each data table (due to the breaking of the data table row to get the tag)

Would be glad for any suggestions! (also for other data containers, but I generally like how easy they are to edit…) Thanks!

ultimately i think it comes down to what you have but depending on how many tags you have you can cache them in a lookup Map. ie iterate all tables once, find each ‘item’ with a tag and add it to a map of tag/item.

ive abandoned data tables so im no expert but you may find use in composite data tables.

the alternative which requires some c++ is DataAssets with AssetRegisterySearchable Tags

I treat them similarly to a database table. Row name is index, design to get index.

Can go further by splitting the data into associative tables.