You can definitely use the collection initializer showed by [@Paparazzi](https://codereview.stackexchange.com/a/151477/59161)

    var processDetails = new List<OnGoingProcess>()
    { 
        new OnGoingProcess(120, "Process 29", "T20"), 
        new OnGoingProcess(85, "Process 229")
    };

---

Like others I have difficulties to understand the requirements but I think what you are looking for is a [`Union`](https://msdn.microsoft.com/en-us/library/bb358407(v=vs.110).aspx)

> Produces the set union of two sequences by using a specified IEqualityComparer<T>.

With it you can replace the entire `foreach` as

    var mergedProcesses = processDetails.Union(routePlans, new ProcessEqualityComparer());

where

    class ProcessEqualityComparer : IEqualityComparer<OnGoingProcess>
    {
    	public bool Equals(OnGoingProcess left, OnGoingProcess right) 
    	{
    		return left.Id == right.Id;
    	}
    
    	public int GetHashCode(OnGoingProcess process)
    	{
    		return process.Id.GetHashCode();
    	}
    }

The result is:

<!-- language: lang-none -->

	120	Process 29	T20
	100	Process 2	A20
	99	Process 3	S20
	85	Process 229	B20
	220	Process 39	C20
	15	Process 20	D20
	101	Process 129	G20
	222	Process new	null