我有一個foreach循環,我想用一個Linq查詢替換,但我一直無法弄清楚如何編寫查詢。請看下面的例子和TIA。是否有可能用Linq替換這個foreach循環?
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication
{
class ExampleProgram
{
static void Main(string[] args)
{
Device device = new Device();
// The goal is to populate this list.
var list1 = new List<IMemory>();
// I would like to replace this loop with a Linq query
foreach(MemoryBank memoryBank in device.MemoryBanks)
{
list1.Add(memoryBank); // add the memory bank
foreach(MemoryBlock memoryBlock in memoryBank.MemoryBlocks)
list1.Add(memoryBlock); // add the memory block
}
//var list2 = from memoryBank in device.MemoryBanks
// from memoryBlock in memoryBank.MemoryBlocks
// select ???;
}
}
interface IMemory
{}
public class Device
{
public IList<MemoryBank> MemoryBanks { get; set; }
}
public class MemoryBank : MemoryBlock, IMemory
{
public IList<MemoryBlock> MemoryBlocks { get; set; }
}
public class MemoryBlock : IMemory
{ }
}
嗯,可以。但是,當你在進行LINQ查詢時需要考慮超過5分鐘的時候,那麼你就知道有什麼不對。 – Euphoric 2011-03-16 15:48:24
@Euphoric如果你在編程中採用這種方法,將很難擴展你的知識。花5分鐘在這裏和那裏學習一些東西,最終可能會獲得回報。 – jsmith 2011-03-16 15:51:33
@jsmith:它不是關於我。它關於其他程序員。如果我看到人們提出的疑問,我會困惑至少5分鐘。但原創從一開始就清澈透明。 – Euphoric 2011-03-16 15:53:45