Đầu tiên, tạo một danh sách -
List list = new List();
Chuỗi ở đây là "xyz" mà chúng ta sẽ tìm thấy các danh sách phụ. Trong khi lặp, chúng tôi sẽ khai báo một danh sách khác, danh sách đó sẽ tạo danh sách con trên mỗi lần lặp thực sự -
for (int i = 1; i < str.Length; i++) { list.Add(str[i - 1].ToString()); List newlist = new List(); for (int j = 0; j < list.Count; j++) { string list2 = list[j] + str[i]; newlist.Add(list2); } list.AddRange(newlist); }
Sau đây là mã hoàn chỉnh -
Ví dụ
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Demo { class MyApplication { static void Main(string[] args) { string str = "xyz"; List list = new List(); for (int i = 1; i < str.Length; i++) { list.Add(str[i - 1].ToString()); List newlist = new List(); for (int j = 0; j < list.Count; j++) { string list2 = list[j] + str[i]; newlist.Add(list2); } list.AddRange(newlist); } list.Add(str[str.Length - 1].ToString()); list.Sort(); Console.WriteLine(string.Join(Environment.NewLine, list)); } } }
Đầu ra
x xy xyz xz y yz z