Problem: You aren't doing anything with the Replaced strings.
You could easily do this, using a simple loop:
C#
for(int i = 0; i < metricList.Count; i++)
{
metricList[i] = metricList[i].Replace("XX", "1");
}
VB.NET
For i As Integer = 0 To metricList.Count - 1
metricList(i) = metricList(i).Replace("XX", "1")
Next
Code iterates through all strings in metricList and replaces XX for 1, it then stores the values back at the correct place in the list, what you aren't doing in your code...
Or using Linq:
C#
var newList = metricList.Select(x => x.Replace("XX", "1")).ToList();
VB.NET
Dim newList = metricList.Select(Function(x) x.Replace("XX", "1")).ToList()
Don't forget to add a reference to linq at the top of your class:
C#
using System.Linq;
VB.NET
Imports System.Linq