我想從文本文件中獲取隨機行數(假設爲2)。從文本文件中獲取隨機行數
例如,
4581511: 50.27: AT
1223522: 86.99: AT
7456117: 68.59: QW
5261789: 39.17: QW
.....
.....
文本文件
bookNumber 價格 代碼
4581511: 50.27: AT
7841522: 26.13: AT
7353532: 96.13: AT
1223522: 86.99: AT
8415621: 89.70: IT
8411442: 82.42: IT
4555577: 19.14: IT
7655577: 65.45: IT
2754831: 35。44: DR
1364449: 82.47: DR
4545454: 45.65: DR
8795457: 78.36: DR
5261789: 39.17: QW
7845522: 10.42: QW
7456117: 68.59: QW
4346129 : 23.78: QW
我能走到今天,我歌廳2線,不是隨機的,而是按順序
代碼
static IEnumerable<string> ReadLines(string path)
{
using (var file = File.OpenText(path))
{
string line;
while ((line = file.ReadLine()) != null)
{
if (line.Contains(":"))
{
yield return line;
}
}
}
}
public static IEnumerable<string> GetrandomLines()
{
string filepath = "file location";
var readTextFile = ReadLines(filepath);
var codeGroup = readTextFile.GroupBy(line => line.Substring(line.Length - 2))
.Select(g => new
{
value = g.Key,
count = g.Count()
});
foreach (var item in codeGroup)
{
Random randomLineGenerator = new Random(DateTime.Now.Millisecond);
var randomLines = (from x in readTextFile
where x.Substring(x.Length - 2) == item.value
select x).Skip(randomLineGenerator.Next(0, item.count)).Take(2);
foreach (var line in randomLines)
{
yield return line;
}
}
}
什麼想法?
感謝
這僅適用於第一個代碼工作是AT,何談其他? – NETQuestion 2010-01-05 20:37:55
這應該適用於任何文件中的所有行。 – BFree 2010-01-05 21:06:17
嗨貝麗 我下面運行你的代碼,並返回只有兩行 GetRandomLines(「C:\ ..,2); 我想是每碼2條隨機線(即AT,IT,DR和QW) THX – NETQuestion 2010-01-06 03:59:20