<p>So I've got a hobby site I'm working on.  I've got items that are tagged and I want to associate those items with photos from Flickr.  Even with restrictive searches, I might get results numbering in the thousands.</p>

<p>Requirements:</p>

<ol>
<li>I want to display between 10-20 pictures but I want to randomize the photos each time.       </li>
<li>I don't want to hit Flickr every time a page request is made.    </li>
<li>Not every Flickr photo with the same tags as my item will be relevant.</li>
</ol>

<p>How should I store that number of results and how would I determine which ones are relevant?</p>

[{'answer_id': 32483, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<pre><code>row.Table.DefaultView[row.Table.Rows.IndexOf(row)]\n</code></pre>\n\n<p>This is an okay answer.  But if you find yourself in this situation, you should consider learning more about DataViews and how they are used, then refactor your code to be view-centric rather than table-centric.</p>\n'}, {'answer_id': 6989851, 'author': 'Joel Barsotti', 'author_id': 37154, 'author_profile': 'https://Stackoverflow.com/users/37154', 'pm_score': 4, 'selected': True, 'text': "<p>Not Exactly a sexy piece of code but their doesn't seem to be an automated way to find the row without just looping the table.</p>\n\n<pre><code>        DataRowView newRowView = null;\n        foreach (DataRowView tempRowView in myDataTable.DefaultView)\n        {\n            if (tempRowView.Row == rowToMatch)\n                newRowView = tempRowView;\n        }\n        if (newRow != null)\n            UseNewRowView(newRowView);\n        else\n            HandleRowNotFound();\n</code></pre>\n"}]
['https://Stackoverflow.com/questions/32462', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2863/']