Лучшее решение, которое я могу придумать в это время, это установить закрытое поле _compareFlags с помощью отражения.Я знаю, я ненавижу размышления за это, и они могут перестать работать в какое-то неизвестное время, но у меня есть много модульных тестов для этого, поэтому я надеюсь, что я не буду жить, чтобы сожалеть об этом.добро пожаловать, я думал о создании своей собственной информации о культуре, но не смог ее увидеть (открыто для предложений по этому пути).
Вот что я сделал с отражением:
[Test]
public void TestDataTable()
{
var dt = new DataTable();
var f = typeof (DataTable).GetField("_compareFlags",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);
var v = (System.Globalization.CompareOptions) f.GetValue(dt);
f.SetValue(dt, CompareOptions.OrdinalIgnoreCase);
dt.Columns.Add("a", typeof(string));
dt.Rows.Add("1");
dt.Rows.Add("{");
dt.Rows.Add("2");
int i = 0;
foreach (var val in dt.Select("", "a"))
{
Assert.AreEqual(new string[] {"1", "2", "{"}[i++],val["a"]);
}
}