2010-06-07 25 views
1

我已存储在数据库中作为如何扭转查询或c#词语

位置的顺序

印度,塔米尔纳杜,奈,Annanagar

而我在网格结合查看它-111显示为 '印度,泰米尔纳德邦,金奈,安纳加格'这种格式。

但我需要以这种格式显示为'Annanagar,Chennai,Tamilnadu,India'。如何在查询或c#中执行这个相反的顺序。

注意:这是存储在一列'印度,泰米尔纳德邦,金奈,Annanagar'用逗号分隔。

+0

但这不是单独存储以作为orderby。它被联合储存在一个专栏中,分别是“印度,泰米尔纳德邦,金奈,安纳那加尔” – Innova 2010-06-07 10:48:20

回答

10

我相信OP提供的位置例如是从DB只是一个结果他正在寻找这样的东西:

string location = "India,Tamilnadu,Chennai,Annanagar"; 
string[] words = location.Split(','); 

Array.Reverse(words); 

string newlocation = String.Join(",", words); 

Console.WriteLine(newlocation); // Annanagar,Chennai,Tamilnadu,India 
1

在SQL中,您可以使用查询的顺序。

SELECT * FROM location 
ORDER BY City 

这将返回City列按字母顺序排列的结果。

如果你想颠倒顺序,这样它会从ž下单 - >一个,你会做

ORDER BY City DESC 

它通常是一个好主意,申请某种在你的查询订购的,这将是用于显示,否则结果会以一个随机的非确定性顺序返回,这很少是您想要的。

2

在SQL语法:

SELECT location FROM locations ORDER BY location ASC // server side sorting 

或者,如果你有你的结果在一个DataTable,你可以这样做:

table.DefaultView.Sort = "location ASC"; // client side in-memory sorting 
0

你问如何使串局部性,市,州,国家,当你有它存储在相反的顺序?那么你不能使用排序来做到这一点。

如果您将所有值存储在单个字段中作为逗号分隔值,则在C#中,可以通过逗号分隔字符串作为分隔符,然后通过使用逗号以相反顺序附加项来再次加入它作为分隔器。

1

使用C#我们有:

var arr = new[] { "India", "Tamilnadu", "Chennai", "Annanagar" }; 

使用LINQ:

var q = from location in arr 
     orderby location ascending // or descending 
     select location; 

使用扩展方法:

var q = arr.OrderBy(l => l); 
var q = arr.OrderByDescending(l => l);